#include <bits/stdc++.h>
using namespace std;
int main() {
  int r, c;
  cin >> r >> c;
  int R = 0, B = 0, G = 0;
  bool GO = true, RO = true, BO = true;
  string x[r];
  for (int i = 0; i < r; i++) {
    cin >> x[i];
    for (int j = 0; j < c; j++) {
      if (x[i][j] == 'G')
        G++;
      else if (x[i][j] == 'R')
        R++;
      else if (x[i][j] == 'B')
        B++;
    }
  }
  if (G != R || G != B || B != R) {
    puts("NO");
    return 0;
  }
  R = 0, B = 0, G = 0;
  if (r == 1) {
    for (int i = 0; i < c; i++) {
      if (x[0][i] == 'R') {
        if (RO) R++;
        if (G > 0) GO = false;
        if (B > 0) BO = false;
      } else if (x[0][i] == 'G') {
        if (GO) G++;
        if (B > 0) BO = false;
        if (R > 0) RO = false;
      } else if (x[0][i] == 'B') {
        if (BO) B++;
        if (G > 0) GO = false;
        if (R > 0) RO = false;
      }
    }
  } else if (c == 1) {
    for (int i = 0; i < r; i++) {
      if (x[i][0] == 'R') {
        if (RO) R++;
        if (G > 0) GO = false;
        if (B > 0) BO = false;
      } else if (x[i][0] == 'G') {
        if (GO) G++;
        if (B > 0) BO = false;
        if (R > 0) RO = false;
      } else if (x[i][0] == 'B') {
        if (BO) B++;
        if (G > 0) GO = false;
        if (R > 0) RO = false;
      }
    }
  }
  if (r == 1 || c == 1) {
    if (RO || GO || BO) {
      puts("YES");
      return 0;
    } else {
      puts("NO");
      return 0;
    }
  }
  GO = true, RO = true, BO = true;
  G = 0, R = 0, B = 0;
  bool ok = true;
  for (int i = 0; i < r; i++) {
    for (int j = 0; j < c - 1; j++) {
      if (x[i][j] != x[i][j + 1]) {
        ok = false;
        break;
      }
      if (x[i][j] == x[i][j + 1] && j == c - 2) {
        if (x[i][j] == 'B' && BO) {
          B++;
          if (R > 0) RO = false;
          if (G > 0) GO = false;
        } else if (x[i][j] == 'G' && GO) {
          G++;
          if (R > 0) RO = false;
          if (B > 0) BO = false;
        } else if (x[i][j] == 'R' && RO) {
          R++;
          if (G > 0) GO = false;
          if (B > 0) BO = false;
        }
      }
    }
  }
  if (ok && R == G && G == B && B == R) {
    puts("YES");
    return 0;
  }
  ok = true;
  GO = true, RO = true, BO = true;
  for (int i = 0; i < c; i++) {
    for (int j = 0; j < r - 1; j++) {
      if (x[j][i] != x[j + 1][i]) {
        ok = false;
        break;
      }
      if (x[j][i] == x[j + 1][i] && j == r - 2) {
        if (x[j][i] == 'B' && BO) {
          B++;
          if (R > 0) RO = false;
          if (G > 0) GO = false;
        } else if (x[j][i] == 'G' && GO) {
          G++;
          if (R > 0) RO = false;
          if (B > 0) BO = false;
        } else if (x[j][i] == 'R' && RO) {
          R++;
          if (G > 0) GO = false;
          if (B > 0) BO = false;
        }
      }
    }
  }
  if (ok && R == G && G == B && B == R) {
    puts("YES");
    return 0;
  }
  puts("NO");
}
