#include<bits/stdc++.h>
using namespace std;
struct node
{
int x,y;
};
int main()
{
int N,area=0,perimeter=0,dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
cin>>N;
int arry[N][N]={0},vis[N][N]={0};
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
char c;
cin>>c;
if(c=='#')
{
arry[i][j]=1;
}
}
}
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
if(arry[i][j]==1&&vis[i][j]==0)
{
int arean=0,perimetern=0;
queue<node> q;
q.push({i,j});
arean++;
vis[i][j]=1;
while(q.empty()==0)
{
node noden=q.front();
q.pop();
for(int k=0;k<4;k++)
{
int xx=noden.x,yy=noden.y;
if(arry[xx][yy]=1&&vis[xx][yy]==0&&xx>=0&&xx<N&&yy>=0&&yy<N)
{
arean++;
q.push({xx,yy});
vis[xx][yy]=1;
}
if(arry[xx][yy]==0||xx<0||xx>=N||yy<00||yy>=N)
{
perimetern++;
}
}
}
if(area>arean)
{
area=arean;
perimeter=perimetern;
}
if(area==arean)
{
if(perimeter>perimetern)
{
perimeter=perimetern;
}
}
}
}
}
cout<<area<<" "<<perimeter;
return 0;
}