process.stdin.resume();
process.stdin.setEncoding('ascii');

var input_stdin = "";
var input_stdin_array = "";
var input_currentline = 0;

process.stdin.on('data', function (data) {
    input_stdin += data;
});

process.stdin.on('end', function () {
    input_stdin_array = input_stdin.split("\n");
    main();    
});

function readLine() {
    return input_stdin_array[input_currentline++];
}

/////////////// ignore above this line ////////////////////

function main() {
    var n = parseInt(readLine());
    // your code goes here
    for(let a=1;a<n;++a){
        var ans = "";
        for(let b=1;b<n;++b){
            var xx = [a,a,-a,-a,b,b,-b,-b]
            var yy = [b,-b,b,-b,a,-a,a,-a];
            var q = [];
            
            q.push([0,0]);
            
           
            var d = new Array(n+1);
            for(i=0;i<n+1;++i){
                d[i] = new Array(n+1);
                d[i].fill(0);
            }
            d[0][0]=0;
            // console.log(d);
            while(q.length>0){
                var p = q.shift();
                var x = p[0];
                var y = p[1];
                for(i=0;i<8;++i){
                    var newx = parseInt(x + xx[i]);
                    var newy = parseInt(y + yy[i]);
                    if(newx>=0 && newx<n && newy>=0 && newy<n && d[newx][newy] === 0){
                        q.push([newx,newy]);
                        d[newx][newy] = d[x][y]+1;
                    }
                    
                }
            }
            //console.log(d);
            
            if(d[n-1][n-1] !==0){
                ans+=d[n-1][n-1] + ' ';
            }
            else{
                ans+="-1 ";
            }
            
        }
        console.log(ans);
        
    }

}