#include<bits/stdc++.h>
using namespace std;
int n,c,s,ac,as;
char a[1001][1001];
int b[1001][1001];
bool ju[1001][1001]={false};
vector<int> ss;
vector<int> cc;
void judge(int x,int y)
{
if(a[x-1][y]=='#') b[x][y]++;
if(a[x+1][y]=='#') b[x][y]++;
if(a[x][y+1]=='#') b[x][y]++;
if(a[x][y-1]=='#') b[x][y]++;
}
void search(int x,int y)
{
if(ju[x][y]==false||x<1||x>n||y<1||y>n) return;
ju[x][y]=false;
s++;
c+=4-b[x][y];
search(x-1,y);
search(x+1,y);
search(x,y+1);
search(x,y-1);
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
cin>>a[i][j];
if(a[i][j]=='#') ju[i][j]=true;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++) if(a[i][j]=='#') judge(i,j);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
if(ju[i][j]==true)
{
search(i,j);
ss.push_back(s);
s=0;
cc.push_back(c);
c=0;
}
}
ac=cc[0];as=ss[0];
for(int i=1;i<cc.size();i++)
{
if(ss[i]>as)
{
as=ss[i];
ac=cc[i];
}
if(ss[i]==as&&cc[i]<ac) ac=cc[i];
}
cout<<as<<" "<<ac<<endl;
return 0;
}