#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;
int n,ans1,ans2,h,flag1,flag2;
int a[1001][1001];
bool vis[1001][1001];
int xx[]={1,1,-1,-1,0,0,1,-1};
int yy[]={0,1,0,-1,1,-1,-1,1};
void bfs(int x,int y){
vis[x][y]=1;
queue<PII>Q;
Q.push({x,y});
flag1=0,flag2=0;
while(!Q.empty()){
for(int i=0;i<8;i++){
int dx=Q.front().first+xx[i];
int dy=Q.front().second+yy[i];
if(dx>=1&&dx<=n&&dy>=1&&dy<=n){
if(a[dx][dy]==h&&!vis[dx][dy]){
vis[dx][dy]=1;
Q.push({dx,dy});
}
if(a[dx][dy]>h)flag1=1;
if(a[dx][dy]<h)flag2=1;
}
}
Q.pop();
}
if(!flag1)ans1++;
if(!flag2)ans2++;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(!vis[i][j])h=a[i][j],bfs(i,j);
}
}
cout<<ans1<<" "<<ans2<<endl;
}