#include <bits/stdc++.h>
using namespace std;
int main() {
  int row, col;
  cin >> row >> col;
  int flag = 0;
  if ((row % 3 != 0) && (col % 3 != 0)) {
    flag = 1;
  }
  string mat[100];
  for (int i = 0; i < row; i++) {
    cin >> mat[i];
  }
  if ((row % 3 != 0) && (col % 3 == 0)) {
    map<char, int> colHash;
    int temp = col / 3, pick;
    for (int i = 0; i < col; i++) {
      if (i % temp == 0) {
        pick = mat[0][i];
        if (colHash.find(pick) != colHash.end()) {
          flag = 1;
          break;
        } else {
          colHash[pick]++;
        }
      }
      for (int j = 0; j < row; j++) {
        if (mat[j][i] != pick) {
          flag = 1;
          break;
        }
      }
      if (flag) break;
    }
  } else if ((row % 3 == 0) && (col % 3 != 0)) {
    map<char, int> colHash;
    int temp = row / 3, pick;
    for (int i = 0; i < row; i++) {
      if (i % temp == 0) {
        pick = mat[i][0];
        if (colHash.find(pick) != colHash.end()) {
          flag = 1;
          break;
        } else {
          colHash[pick]++;
        }
      }
      for (int j = 0; j < col; j++) {
        if (mat[i][j] != pick) {
          flag = 1;
          break;
        }
      }
      if (flag) break;
    }
  } else if ((row % 3 == 0) && (col % 3 == 0)) {
    map<char, int> colHash;
    int temp = col / 3, pick;
    for (int i = 0; i < col; i++) {
      if (i % temp == 0) {
        pick = mat[0][i];
        if (colHash.find(pick) != colHash.end()) {
          flag = 1;
          break;
        } else {
          colHash[pick]++;
        }
      }
      for (int j = 0; j < row; j++) {
        if (mat[j][i] != pick) {
          flag = 1;
          break;
        }
      }
      if (flag) break;
    }
    if (flag == 1) {
      flag = 0;
      map<char, int> colHash;
      int temp = row / 3, pick;
      for (int i = 0; i < row; i++) {
        if (i % temp == 0) {
          pick = mat[i][0];
          if (colHash.find(pick) != colHash.end()) {
            flag = 1;
            break;
          } else {
            colHash[pick]++;
          }
        }
        for (int j = 0; j < col; j++) {
          if (mat[i][j] != pick) {
            flag = 1;
            break;
          }
        }
        if (flag) break;
      }
    }
  }
  if (flag) {
    cout << "NO" << endl;
  } else {
    cout << "YES" << endl;
  }
  return 0;
}
