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); } } }