import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Inflect2 {
static int[][] crowd;
static int N;
static int maxnum=0;
static int deep=0;
static boolean isR = false;
static int[][] dir = new int[][] { { 0, -1 }, { -1, 0 }, { 0, 1 }, { 1, 0 } };
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
Scanner sc = new Scanner(new File("src/inflect"));
N = sc.nextInt();
crowd = new int[N + 2][N + 2];
for (int i = 0; i < N + 2; i++) {
crowd[i][0] = 0;
crowd[0][i] = 0;
crowd[N + 1][i] = 0;
crowd[i][N + 1] = 0;
}
for (int i = 1; i < N + 1; i++) {
for (int j = 1; j < N + 1; j++) {
crowd[i][j] = sc.nextInt();
}
}
crowd[1][1] = 2;
Inflection();
System.out.println(maxnum+"--"+deep);
}
private static void Inflection() {
// TODO Auto-generated method stub
for (int i = 1; i < N + 1; i++) {
for (int j = 1; j < N + 1; j++) {
if (crowd[i][j] == (deep+2)) {
maxnum++;
isR = true;
crowd[i][j] = 2;
for (int i2 = 0; i2 < 4; i2++) {
if (crowd[i + dir[i2][0]][j + dir[i2][1]] == 1)
crowd[i + dir[i2][0]][j + dir[i2][1]] = deep+3;
}
}
}
}
if (isR) {
isR=!isR;
deep++;
Inflection();
}
}
}