#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
using namespace std;
const int N=1600;
char a[N][N];
int s[N];
int n,m,w;
int xx[9]={0,0,-1,-1,+1,+1,+0,1,-1};
int yy[9]={0,1,+1,-1,-1,+1,-1,0,0};
int pan(int x,int y)
{
if(x>n||y>m||x<1||y<1||a[x][y]!='*') return 0;
else return 1;
}
int search(int x,int y)
{
w++;
a[x][y]='.';
for(int i=1;i<=8;i++)
{
int dx=x+xx[i],dy=y+yy[i];
if(pan(dx,dy)) search(dx,dy);
}
return w;
}
int sum,maxx=-10000000,o,q=1;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++) cin>>a[i][j];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(a[i][j]=='*')
{
sum++;
s[sum]=search(i,j);
}
}
}
sort(s+1,s+1+sum);
for(int i=1;i<=sum;i++)
{
if(s[i+1]==s[i]) o+=s[i];
else
{
q++;
maxx=max(maxx,o+s[i]);
o=0;
}
}
cout<<q-1<<" "<<maxx;
return 0;
}