#include <iostream>
#include <queue>
using namespace std;
int map[100][100];
pair<int, int> dir[4] = {make_pair(-1, 0), make_pair(1, 0), make_pair(0, -1), make_pair(0, 1)};
int N, answer;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int maxRain=0;
cin>>N;
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
cin>>map[i][j];
maxRain = max(map[i][j], maxRain);
}
}
for(int rain=0; rain<=maxRain; rain++){
bool visited[100][100] = {false, };
int area = 0;
queue<pair<int, int>> q;
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
if(map[i][j] - rain > 0 && !visited[i][j]){
area++;
visited[i][j] = true;
q.push(make_pair(i, j));
while(!q.empty()){
pair<int, int> current = q.front();
q.pop();
for(int k=0;k<4;k++){
int ny = current.first + dir[k].first;
int nx = current.second + dir[k].second;
if(ny<0||ny>=N||nx<0||nx>=N) continue;
if(visited[ny][nx]) continue;
if(map[ny][nx] - rain > 0){
visited[ny][nx] = true;
q.push(make_pair(ny, nx));
}
}
}
}
}
}
answer = max(answer, area);
}
cout<<answer<<'\n';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cXVldWU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFwWzEwMF1bMTAwXTsKcGFpcjxpbnQsIGludD4gZGlyWzRdID0ge21ha2VfcGFpcigtMSwgMCksIG1ha2VfcGFpcigxLCAwKSwgbWFrZV9wYWlyKDAsIC0xKSwgbWFrZV9wYWlyKDAsIDEpfTsKaW50IE4sIGFuc3dlcjsKCmludCBtYWluKCkgewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7CgljaW4udGllKDApOwoJY291dC50aWUoMCk7CgkKCWludCBtYXhSYWluPTA7CgkKCWNpbj4+TjsKCWZvcihpbnQgaT0wO2k8TjtpKyspewoJCWZvcihpbnQgaj0wO2o8TjtqKyspewoJCQljaW4+Pm1hcFtpXVtqXTsKCQkJbWF4UmFpbiA9IG1heChtYXBbaV1bal0sIG1heFJhaW4pOwoJCX0KCX0KCQoJZm9yKGludCByYWluPTA7IHJhaW48PW1heFJhaW47IHJhaW4rKyl7CgkJYm9vbCB2aXNpdGVkWzEwMF1bMTAwXSA9IHtmYWxzZSwgfTsKCQlpbnQgYXJlYSA9IDA7CgkJcXVldWU8cGFpcjxpbnQsIGludD4+IHE7CgkJCgkJZm9yKGludCBpPTA7aTxOO2krKyl7CgkJCWZvcihpbnQgaj0wO2o8TjtqKyspewoJCQoJCQkJaWYobWFwW2ldW2pdIC0gcmFpbiA+IDAgJiYgIXZpc2l0ZWRbaV1bal0pewoJCQkJCgkJCQkJYXJlYSsrOwoJCQkJCXZpc2l0ZWRbaV1bal0gPSB0cnVlOwoJCQkJCXEucHVzaChtYWtlX3BhaXIoaSwgaikpOwoJCQkJCQoJCQkJCXdoaWxlKCFxLmVtcHR5KCkpewoJCQkJCQlwYWlyPGludCwgaW50PiBjdXJyZW50ID0gcS5mcm9udCgpOwoJCQkJCQkKCQkJCQkJcS5wb3AoKTsKCQkJCQkJCgkJCQkJCWZvcihpbnQgaz0wO2s8NDtrKyspewoJCQkJCQkJaW50IG55ID0gY3VycmVudC5maXJzdCArIGRpcltrXS5maXJzdDsKCQkJCQkJCWludCBueCA9IGN1cnJlbnQuc2Vjb25kICsgZGlyW2tdLnNlY29uZDsKCQkJCQkJCQoJCQkJCQkJaWYobnk8MHx8bnk+PU58fG54PDB8fG54Pj1OKSBjb250aW51ZTsKCQkJCQkJCWlmKHZpc2l0ZWRbbnldW254XSkgY29udGludWU7CgkJCQkJCQlpZihtYXBbbnldW254XSAtIHJhaW4gPiAwKXsKCQkJCQkJCQl2aXNpdGVkW255XVtueF0gPSB0cnVlOwoJCQkJCQkJCXEucHVzaChtYWtlX3BhaXIobnksIG54KSk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJCgkJYW5zd2VyID0gbWF4KGFuc3dlciwgYXJlYSk7Cgl9Cgljb3V0PDxhbnN3ZXI8PCdcbic7CgkKCXJldHVybiAwOwp9