#include <bits/stdc++.h>
using namespace std;
char mapp[105][105];
int m, n;
bool check() {
  for (int i = 1; i < m; i++)
    if (mapp[0][i] != mapp[0][i - 1]) return false;
  return true;
}
void fz() {
  for (int i = 0; i < max(m, n); i++)
    for (int j = i; j < max(m, n); j++) swap(mapp[i][j], mapp[j][i]);
  swap(m, n);
}
bool ys(int t, int b, char color) {
  for (int i = t; i < b; i++) {
    for (int j = 0; j < m; j++)
      if (mapp[i][j] != color) return false;
  }
  return true;
}
int main() {
  scanf("%d%d", &n, &m);
  getchar();
  for (int i = 0; i < n; i++) {
    gets(mapp[i]);
  }
  if (n % 3 != 0 && m % 3 != 0) {
    printf("NO\n");
    return 0;
  }
  if (!check()) fz();
  if (n % 3 != 0 || !ys(0, n / 3, mapp[0][0]) ||
      !ys(n / 3, n / 3 * 2, mapp[n / 3][0]) ||
      !ys(n / 3 * 2, n, mapp[n / 3 * 2][0])) {
    printf("NO\n");
    return 0;
  } else if (mapp[0][0] == mapp[n / 3][0] || mapp[0][0] == mapp[n / 3 * 2][0] ||
             mapp[n / 3 * 2][0] == mapp[n / 3][0]) {
    printf("NO\n");
    return 0;
  } else
    printf("YES\n");
  return 0;
}
