#include <bits/stdc++.h>
#include <unistd.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef long double ldb;
const ll MAXN=1505;
const ll dir[][2]={{1,0},{0,1},{-1,0},{0,-1},{-1,1},{1,-1},{1,1},{-1,-1}};
ll colorcount,n,m,s,ans1,ans2;
map<ll,bool>a;
char field[MAXN][MAXN];
ll color[MAXN][MAXN];
void dfs(ll x,ll y){
++s;
color[x][y]=colorcount;
for(ll i=0;i<8;++i){
ll row=x+dir[i][0],col=y+dir[i][1];
if(field[row][col]!='.'&&color[row][col]==0){
dfs(row,col);
}
}
}
int main() {
memset(field,'.',sizeof(field));
cin>>n>>m;
for(ll i=1;i<=n;++i){
for(ll j=1;j<=m;++j){
cin>>field[i][j];
}
}
for(ll i=1;i<=n;++i){
for(ll j=1;j<=m;++j){
if(field[i][j]!='.'&&color[i][j]==0){
++colorcount;
dfs(i,j);
ans2=max(ans2,s);
a[s]=true;
s=0;
}
}
}
for(auto it=a.begin();it!=a.end();++it)++ans1;
cout<<ans1<<" "<<ans2;
return 0;
}