#include <bits/stdc++.h>
using namespace std;
char b[5005];
int n, m;
int l[5005], r[5005], u[5005], d[5005];
void init() {
  fill(l, l + n * m, n * m);
  fill(r, r + n * m, n * m);
  fill(u, u + n * m, n * m);
  fill(d, d + n * m, n * m);
  for (int i = 0, ThxDem = n; i < ThxDem; ++i) {
    int z = n * m;
    for (int j = 0, ThxDem = m; j < ThxDem; ++j)
      if (b[i * m + j] != '.') {
        l[i * m + j] = z;
        r[z] = i * m + j;
        z = i * m + j;
      }
  }
  for (int j = 0, ThxDem = m; j < ThxDem; ++j) {
    int z = n * m;
    for (int i = 0, ThxDem = n; i < ThxDem; ++i)
      if (b[i * m + j] != '.') {
        u[i * m + j] = z;
        d[z] = i * m + j;
        z = i * m + j;
      }
  }
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0, ThxDem = n; i < ThxDem; ++i) scanf("%s", b + i * m);
  int r0 = 0, r1 = 0;
  for (int i = 0, ThxDem = n; i < ThxDem; ++i)
    for (int j = 0, ThxDem = m; j < ThxDem; ++j)
      if (b[i * m + j] != '.') {
        init();
        int x = i * m + j, c = 0;
        while (x < n * m) {
          c++;
          l[r[x]] = l[x];
          r[l[x]] = r[x];
          u[d[x]] = u[x];
          d[u[x]] = d[x];
          if (b[x] == 'L')
            x = l[x];
          else if (b[x] == 'R')
            x = r[x];
          else if (b[x] == 'U')
            x = u[x];
          else
            x = d[x];
        }
        if (c > r0)
          r0 = c, r1 = 1;
        else if (c == r0)
          r1++;
      }
  printf("%d %d\n", r0, r1);
  return 0;
}
