#include <bits/stdc++.h>
using namespace std;
const int N = 5050;
char s[N];
int l[N], r[N], u[N], d[N], n, m, x[N], y[N];
int ID(int i, int j) { return (i - 1) * m + j; }
void Del(int id) {
  int L = l[id], R = r[id], U = u[id], D = d[id];
  if (L) r[L] = R;
  if (R) l[R] = L;
  if (U) d[U] = D;
  if (D) u[D] = U;
}
void init() {
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      int id = ID(i, j);
      if (i > 1) u[id] = ID(i - 1, j);
      if (i < n) d[id] = ID(i + 1, j);
      if (j > 1) l[id] = ID(i, j - 1);
      if (j < m) r[id] = ID(i, j + 1);
    }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      int id = ID(i, j);
      if (s[id] == '.') Del(id);
    }
}
int Calc(int id) {
  if (s[id] == '.') return 0;
  init();
  int ans = 0;
  while (id) {
    Del(id);
    if (s[id] == 'U')
      id = u[id];
    else if (s[id] == 'D')
      id = d[id];
    else if (s[id] == 'L')
      id = l[id];
    else if (s[id] == 'R')
      id = r[id];
    ans++;
  }
  return ans;
}
char Read() {
  char c = getchar();
  while (c != '.' && c != 'U' && c != 'D' && c != 'L' && c != 'R')
    c = getchar();
  return c;
}
int main() {
  scanf("%i %i", &n, &m);
  for (int i = 1; i <= n * m; i++) s[i] = Read();
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) x[ID(i, j)] = i, y[ID(i, j)] = j;
  int sol = 0, cnt = 0;
  for (int i = 1; i <= n * m; i++) {
    int ans = Calc(i);
    if (ans > sol) sol = ans, cnt = 0;
    if (ans == sol) cnt++;
  }
  printf("%i %i\n", sol, cnt);
  return 0;
}
