#include <bits/stdc++.h>
using namespace std;
void solve() {
  int n, m;
  cin >> n >> m;
  string s[n];
  for (int i = 0; i < n; i++) cin >> s[i];
  int ok = 0;
  if (n % 3 == 0) {
    set<char> st1, st2, st3;
    for (int i = 0; i < n / 3; i++) {
      for (int j = 0; j < m; j++) st1.insert(s[i][j]);
    }
    for (int i = n / 3; i < (2 * n) / 3; i++) {
      for (int j = 0; j < m; j++) st2.insert(s[i][j]);
    }
    for (int i = (2 * n) / 3; i < n; i++) {
      for (int j = 0; j < m; j++) st3.insert(s[i][j]);
    }
    set<char> st4;
    for (auto it : st1) st4.insert(it);
    for (auto it : st2) st4.insert(it);
    for (auto it : st3) st4.insert(it);
    if (int(st1.size()) == 1 && int(st2.size()) == 1 && int(st3.size()) == 1 &&
        int(st4.size()) == 3)
      ok = 1;
  }
  if (m % 3 == 0) {
    set<char> st1, st2, st3;
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < m / 3; j++) st1.insert(s[i][j]);
    }
    for (int i = 0; i < n; i++) {
      for (int j = m / 3; j < (2 * m) / 3; j++) st2.insert(s[i][j]);
    }
    for (int i = 0; i < n; i++) {
      for (int j = (2 * m) / 3; j < m; j++) st3.insert(s[i][j]);
    }
    set<char> st4;
    for (auto it : st1) st4.insert(it);
    for (auto it : st2) st4.insert(it);
    for (auto it : st3) st4.insert(it);
    if (int(st1.size()) == 1 && int(st2.size()) == 1 && int(st3.size()) == 1 &&
        int(st4.size()) == 3)
      ok = 1;
  }
  cout << (ok ? "YES\n" : "NO\n");
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  int t = 1;
  for (int i = 1; i <= t; i++) {
    solve();
  }
  return 0;
}
