#include <bits/stdc++.h>
using namespace std;
int N, M;
map<char, int> Z;
int E[5010][5010], Q[5010];
int U[5010], D[5010], L[5010], R[5010];
char ss[5010];
int dfs(int mm) {
  int nn;
  if (mm == 0) return 0;
  if (Q[mm] == 1)
    nn = U[mm];
  else if (Q[mm] == 2)
    nn = D[mm];
  else if (Q[mm] == 3)
    nn = L[mm];
  else if (Q[mm] == 4)
    nn = R[mm];
  if (L[mm] != 0) R[L[mm]] = R[mm];
  if (R[mm] != 0) L[R[mm]] = L[mm];
  if (D[mm] != 0) U[D[mm]] = U[mm];
  if (U[mm] != 0) D[U[mm]] = D[mm];
  int res = dfs(nn);
  if (L[mm] != 0) R[L[mm]] = mm;
  if (R[mm] != 0) L[R[mm]] = mm;
  if (D[mm] != 0) U[D[mm]] = mm;
  if (U[mm] != 0) D[U[mm]] = mm;
  return res + 1;
}
int main() {
  Z['U'] = 1, Z['D'] = 2, Z['L'] = 3, Z['R'] = 4, Z['.'] = 0;
  scanf("%d%d", &N, &M);
  for (int i = 1; i <= N; i++) {
    scanf("%s", ss + 1);
    for (int j = 1; j <= M; j++) {
      E[i][j] = Z[ss[j]];
      Q[(i - 1) * M + j] = E[i][j];
    }
  }
  memset(U, 0, sizeof(U));
  memset(D, 0, sizeof(D));
  memset(L, 0, sizeof(L));
  memset(R, 0, sizeof(R));
  for (int i = 1; i <= N; i++) {
    int ll = 0, mm;
    for (int j = 1; j <= M; j++)
      if (E[i][j] != 0) {
        mm = (i - 1) * M + j;
        if (ll != 0) L[mm] = ll, R[ll] = mm;
        ll = mm;
      }
  }
  for (int j = 1; j <= M; j++) {
    int uu = 0, mm;
    for (int i = 1; i <= N; i++)
      if (E[i][j] != 0) {
        mm = (i - 1) * M + j;
        if (uu != 0) U[mm] = uu, D[uu] = mm;
        uu = mm;
      }
  }
  int mx = 0, cnt;
  for (int i = 1; i <= N; i++)
    for (int j = 1; j <= M; j++)
      if (E[i][j] != 0) {
        int k = dfs((i - 1) * M + j);
        if (k > mx)
          mx = k, cnt = 1;
        else if (k == mx)
          cnt++;
      }
  cout << mx << " " << cnt << endl;
  return 0;
}
