#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5002;
const int N_DIR = 4;
char dir[] = {'U', 'R', 'D', 'L'};
int dx[] = {-1, 0, 1, 0};
int dy[] = {0, 1, 0, -1};
string grid[MAXN];
string mat[MAXN];
vector<vector<vector<pair<int, int>>>> ashdASDHaOS;
vector<vector<vector<pair<int, int>>>> mov;
int direction[MAXN][MAXN];
inline bool is_in(int x, int y, int n, int m) {
  return 0 <= x && x < n && 0 <= y && y < m;
}
void build(int n, int m) {
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (grid[i][j] == '.') continue;
      for (int k = 0; k < 4; k++) {
        if (grid[i][j] == dir[k]) direction[i][j] = k;
        for (int p = 1;; p++) {
          int x = i + p * dx[k];
          int y = j + p * dy[k];
          if (is_in(x, y, n, m)) {
            if (grid[x][y] != '.') {
              ashdASDHaOS[i][j][k] = {x, y};
              break;
            }
          } else {
            ashdASDHaOS[i][j][k] = {x, y};
            break;
          }
        }
      }
    }
  }
  return;
}
int solve(int x, int y, int n, int m) {
  mov = ashdASDHaOS;
  for (int i = 0; i < n; i++) {
    mat[i] = grid[i];
  }
  int chips = 0;
  while (is_in(x, y, n, m)) {
    chips++;
    mat[x][y] = '.';
    int d = direction[x][y];
    for (int k = 0; k < 4; k++) {
      if (is_in(mov[x][y][k].first, mov[x][y][k].second, n, m)) {
        int nx = mov[x][y][k].first;
        int ny = mov[x][y][k].second;
        mov[nx][ny][k ^ 2] = mov[x][y][k ^ 2];
      }
    }
    pair<int, int> p = mov[x][y][d];
    x = p.first;
    y = p.second;
  }
  return chips;
}
int main(void) {
  int n, m;
  scanf(" %d %d", &n, &m);
  ashdASDHaOS.resize(n);
  for (int i = 0; i < n; i++) {
    ashdASDHaOS[i].resize(m);
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      ashdASDHaOS[i][j].resize(4);
    }
  }
  for (int i = 0; i < n; i++) {
    cin >> grid[i];
  }
  int ans = 0;
  int ways = 1;
  build(n, m);
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (grid[i][j] == '.') continue;
      int chips = solve(i, j, n, m);
      if (chips > ans) {
        ans = chips;
        ways = 1;
      } else if (chips == ans) {
        ways++;
      }
    }
  }
  printf("%d %d\n", ans, ways);
  return 0;
}
