using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Solution {

    static void Main(String[] args) {
        int n = Convert.ToInt32(Console.ReadLine());
        int m = n - 1;
        int[,] moves = new int[m,m]; 
        
        for (int i = 0; i < m; i++)
        {
            for (int j = i; j < m; j++)
            {
                int numMoves = 0;
                int curx = 0;
                int cury = 0;
                while (curx < m && cury < m)
                {
                    if (curx == m)
                    {
                        if (cury == m)
                        {
                            //Finished
                            break;
                        }
                        else if (m - cury >= j)
                        {
                            curx -= i;
                            cury += j;
                            numMoves++;
                        }
                        else if (m - cury >= i)
                        {
                            curx -= j;
                            cury += i;
                            numMoves++;
                        }
                        else
                        {
                            numMoves = -1;
                            break;
                        }
                    }
                    else if (cury == m)
                    {
                        if (m - curx >= i)
                        {
                            curx += i;
                            cury -= j;
                            numMoves++;
                        }
                        else if (m - cury >= j)
                        {
                            curx += j;
                            cury -= i;
                            numMoves++;
                        }
                        else
                        {
                            numMoves = -1;
                            break;
                        }
                    }
                    else if(m - curx >= i)
                    {
                        if (n - cury >= j)
                        {
                            //ok
                            curx += i;
                            cury += j;
                            numMoves++;
                        }
                        else if (m - cury >= i && (m - curx >= j))
                        {
                            //ok
                            curx += j;
                            cury += i;
                            numMoves++;
                        }
                        else
                        {
                            // nope
                            numMoves = -1;
                            break;
                        }
                    }
                    else if (m - cury >= i && (m - curx >= j))
                    {
                        //ok
                        curx += j;
                        cury += i;
                        numMoves++;
                    }
                    else
                    {
                        //nope
                        numMoves = -1;
                        break;
                    }
                    
                }
                
                moves[i,j] = numMoves;
                moves[j,i] = numMoves;
            }
        }
        
        for (int a = 0; a < m; a++)
        {
            Console.Write(moves[a,0]);
                
            for (int b = 1; b < m; b++)
            {
                Console.Write(" " + moves[a,b].ToString());
            }
            
            Console.Write(Environment.NewLine);
        }
    }
}