#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:16000000")
using namespace std;
const int inf = 0x3f3f3f3f;
const long long inf2 = 0x3f3f3f3f3f3f3f3f;
const double eps = 1e-6;
const int mod = 1000000007;
string s[59];
int n, m;
vector<char> empty;
struct matrix {
  vector<vector<char> > dat;
  void rotate() {
    int n = dat.size();
    int m = dat[0].size();
    vector<vector<char> > b;
    b.resize(m);
    for (int i = 0; i < m; i++) b[i].resize(n);
    for (int i = 0; i < n; i++)
      for (int j = 0; j < m; j++) b[j][n - i - 1] = dat[i][j];
    dat = b;
  }
  void print() {
    for (int i = 0; i < dat.size(); i++) {
      for (int j = 0; j < dat[i].size(); j++) {
        cout << dat[i][j];
      }
      cout << endl;
    }
  }
} mat;
bool operator<(const matrix &a, const matrix &b) { return a.dat < b.dat; }
bool check(int x, int y) {
  set<matrix> H;
  H.clear();
  for (int i = 0; i < n / x; i++)
    for (int j = 0; j < m / y; j++) {
      mat.dat.clear();
      for (int ii = i * x; ii < (i + 1) * x; ii++) mat.dat.push_back(empty);
      for (int ii = i * x; ii < (i + 1) * x; ii++)
        for (int jj = j * y; jj < (j + 1) * y; jj++)
          mat.dat[ii - i * x].push_back(s[ii][jj]);
      for (int iii = 0; iii < 4; iii++) {
        if (H.count(mat)) {
          return false;
        }
        mat.rotate();
      }
      for (int iii = 0; iii < 4; iii++) {
        H.insert(mat);
        mat.rotate();
      }
    }
  return true;
}
int main() {
  empty.clear();
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    cin >> s[i];
  }
  int cnt = 0;
  pair<int, int> best = make_pair(50, 50);
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      if (n % i != 0 || m % j != 0) continue;
      if (check(i, j)) {
        cnt++;
        if (i * j < best.first * best.second) best = make_pair(i, j);
        if (i * j == best.first * best.second && i < best.first)
          best = make_pair(i, j);
      }
    }
  cout << cnt << endl;
  cout << best.first << " " << best.second << endl;
  return 0;
}
