#include <bits/stdc++.h>
using namespace std;
const int maxn = 5000 + 10;
short int RowNext[maxn][maxn], RowPrev[maxn][maxn], ColNext[maxn][maxn],
    ColPrev[maxn][maxn], n, m;
char c[maxn][maxn];
void makeLinks() {
  for (int r = 1; r <= n; r++) {
    int pr = 0;
    for (int i = 1; i <= m; i++) {
      RowPrev[r][i] = pr;
      if (c[r][i] != '.' && pr != 0) RowNext[r][pr] = i;
      if (c[r][i] != '.') pr = i;
    }
  }
  for (int col = 1; col <= m; col++) {
    int pr = 0;
    for (int i = 1; i <= n; i++) {
      ColPrev[col][i] = pr;
      if (c[i][col] != '.' && pr != 0) ColNext[col][pr] = i;
      if (c[i][col] != '.') pr = i;
    }
  }
}
pair<int, int> neX(int i, int j) {
  if (c[i][j] == 'R') {
    if (RowNext[i][j] == 0) return make_pair(0, 0);
    return make_pair(i, RowNext[i][j]);
  }
  if (c[i][j] == 'L') {
    if (RowPrev[i][j] == 0) return make_pair(0, 0);
    return make_pair(i, RowPrev[i][j]);
  }
  if (c[i][j] == 'D') {
    if (ColNext[j][i] == 0) return make_pair(0, 0);
    return make_pair(ColNext[j][i], j);
  }
  if (c[i][j] == 'U') {
    if (ColPrev[j][i] == 0) return make_pair(0, 0);
    return make_pair(ColPrev[j][i], j);
  }
}
void del(int i, int j) {
  if (RowNext[i][j] != 0 && RowPrev[i][j] != 0) {
    RowNext[i][RowPrev[i][j]] = RowNext[i][j];
    RowPrev[i][RowNext[i][j]] = RowPrev[i][j];
  } else if (RowNext[i][j] != 0) {
    RowPrev[i][RowNext[i][j]] = 0;
  } else if (RowPrev[i][j] != 0) {
    RowNext[i][RowPrev[i][j]] = 0;
  }
  if (ColNext[j][i] != 0 && ColPrev[j][i] != 0) {
    ColNext[j][ColPrev[j][i]] = ColNext[j][i];
    ColPrev[j][ColNext[j][i]] = ColPrev[j][i];
  } else if (ColNext[j][i] != 0) {
    ColPrev[j][ColNext[j][i]] = 0;
  } else if (ColPrev[j][i] != 0) {
    ColNext[j][ColPrev[j][i]] = 0;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  int Ans = 0, maxx = -10000;
  cin >> n >> m;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) cin >> c[i][j];
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      if (c[i][j] == '.') continue;
      makeLinks();
      int x = i, y = j, ans = 0;
      while (true) {
        ans++;
        if (neX(x, y).first == 0) break;
        pair<int, int> X = neX(x, y);
        del(x, y);
        x = X.first, y = X.second;
      }
      if (ans > maxx)
        Ans = 1, maxx = ans;
      else if (ans == maxx)
        Ans++;
    }
  cout << maxx << " " << Ans << endl;
}
