#include <iostream>
#include <algorithm>
#include <string>

using namespace std;

const int maxn = 2000;

int up[maxn+1][maxn+1],back[maxn+1][maxn+1],square[maxn+1][maxn+1];
string A[maxn+1];

int main()
{
  int TT = 1;
  while(TT--)
  {
    int n,m;
    int M = 0;
    cin >> n >> m;
    for(int i=0; i<n; i++)
      cin >> A[i];
    for(int i=0; i<=max(m,n); i++)
      up[i][0] = up[0][i] = back[i][0] = back[0][i] = square[i][0] = square[0][i] = 0;
    for(int i=1; i<=n; i++)
      for(int j=1; j<=m; j++)
      {
        if (A[i-1][j-1]=='x')
          square[i][j] = back[i][j] = up[i][j] = 0;
        else
        {
          back[i][j] = back[i][j-1]+1;
          up[i][j] = up[i-1][j]+1;
          square[i][j] = min(min(back[i][j],up[i][j]),square[i-1][j-1]+1);
          M = max(M,square[i][j]);
        }
      }
    int c = 0;
    for(int i=1; i<=n; i++)
      for(int j=1; j<=m; j++)
        c+=(square[i][j]==M);
    cout << M << " " << c << endl;
  }
}
