import java.util.Scanner; public class E { static int lmax(int[][] a, int n, int max) { for (int i = 0; i < n; i++) { int b = 0; for (int j = 0; j < n; j++) { b += a[j][i]; } max = Math.max(max, b); } return max; } static int[][] yy(int[][] a, int b, int n) { int c = a[b][n - 1]; for (int j = n - 1; j > 0; j--) { a[b][j] = a[b][j - 1]; } a[b][0] = c; return a; } static int yy2(int[][] a, int[][] z, int b, int n, int c) { for (int i = 0; i < n; i++) { if (a[b][i] != z[b][i]) { c = 0; return c; } } return c; } public static void main(String[] args) { while (cin.hasNext()) { int n = cin.nextInt(); if (n == -1) break; int[][] m = new int[n][n]; int[][] z = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { m[i][j] = cin.nextInt(); z[i][j] = m[i][j]; } } int max, a, b; max = 0; int min = lmax(m, n, max); for (int i = 1; i < Math.pow(n, n); i++) { b = 0; m = yy(m, b, n); a = 1; a = yy2(m, z, b, n, a); while (a == 1 && b + 1 < n) { b++; m = yy(m, b, n); a = yy2(m, z, b, n, a); } max = 0; max = lmax(m, n, max); min = Math.min(min, max); } System.out.println(min); } cin.close(); } static Scanner cin = new Scanner(System.in); }