#include<bits/stdc++.h>
using namespace std;


int main() {
    int x;
    cin>>x;
    int array[25][25];
    for(int i=1;i<x;i++){
        for(int j=1;j<x;j++){
            for(int k=0;k<x;k++){
                for(int l=0;l<x;l++){
                    array[k][l]=2147483640;
                }
            }
            int a=i;
            int b=j;
            array[0][0]=0;
            queue<pair<int,int> > q;
            pair<int,int> foo;
            foo=make_pair(0,0);
            q.push(foo);
            while(q.size()!=0){
                int one=q.front().first;
                int two=q.front().second;
                q.pop();
                if(one+a<x&&two+b<x&&array[one+a][two+b]>array[one][two]+1){
                    array[one+a][two+b]=array[one][two]+1;
                    foo=make_pair(one+a,two+b);
                    q.push(foo);
                }if(one-a>=0&&two+b<x&&array[one-a][two+b]>array[one][two]+1){
                    array[one-a][two+b]=array[one][two]+1;
                    foo=make_pair(one-a,two+b);
                    q.push(foo);
                }if(one+a<x&&two-b>=0&&array[one+a][two-b]>array[one][two]+1){
                    array[one+a][two-b]=array[one][two]+1;
                    foo=make_pair(one+a,two-b);
                    q.push(foo);
                }if(one-a>=0&&two-b>=0&&array[one-a][two-b]>array[one][two]+1){
                    array[one-a][two-b]=array[one][two]+1;
                    foo=make_pair(one-a,two-b);
                    q.push(foo);
                }if(one+b<x&&two+a<x&&array[one+b][two+a]>array[one][two]+1){
                    array[one+b][two+a]=array[one][two]+1;
                    foo=make_pair(one+b,two+a);
                    q.push(foo);
                }if(one-b>=0&&two+a<x&&array[one-b][two+a]>array[one][two]+1){
                    array[one-b][two+a]=array[one][two]+1;
                    foo=make_pair(one-b,two+a);
                    q.push(foo);
                }if(one+b<x&&two-a>=0&&array[one+b][two-a]>array[one][two]+1){
                    array[one+b][two-a]=array[one][two]+1;
                    foo=make_pair(one+b,two-a);
                    q.push(foo);
                }if(one-b>=0&&two-a>=0&&array[one-b][two-a]>array[one][two]+1){
                    array[one-b][two-a]=array[one][two]+1;
                    foo=make_pair(one-b,two-a);
                    q.push(foo);
                }
            }
            if(array[x-1][x-1]==2147483640){
                cout<<-1;
            }else{
                cout<<array[x-1][x-1];
            }
            if(j==x-1){
                cout<<endl;
            }else{
                cout<<" ";
            }
        }
    }
    return 0;
}