#include <bits/stdc++.h>
using namespace std;
int a[30], c[30], d[30];
int solve() {
  int find;
  if ((a[1] == a[2]) && (a[2] == a[3]) && (a[3] == a[4]) && (a[9] == a[10]) &&
      (a[10] == a[11]) && (a[11] == a[12])) {
    c[1] = a[13];
    c[2] = a[14];
    c[3] = a[5];
    c[4] = a[6];
    c[5] = a[17];
    c[6] = a[18];
    c[7] = a[21];
    c[8] = a[22];
    d[1] = a[15];
    d[2] = a[16];
    d[3] = a[7];
    d[4] = a[8];
    d[5] = a[19];
    d[6] = a[20];
    d[7] = a[23];
    d[8] = a[24];
  } else if ((a[13] == a[14]) && (a[14] == a[15]) && (a[15] == a[16]) &&
             (a[17] == a[18]) && (a[18] == a[19]) && (a[19] == a[20])) {
    c[1] = a[1];
    c[2] = a[3];
    c[3] = a[5];
    c[4] = a[7];
    c[5] = a[9];
    c[6] = a[11];
    c[7] = a[24];
    c[8] = a[22];
    d[1] = a[2];
    d[2] = a[4];
    d[3] = a[6];
    d[4] = a[8];
    d[5] = a[10];
    d[6] = a[12];
    d[7] = a[23];
    d[8] = a[21];
  } else if ((a[5] == a[6]) && (a[6] == a[7]) && (a[7] == a[8]) &&
             (a[21] == a[22]) && (a[22] == a[23]) && (a[23] == a[24])) {
    c[1] = a[3];
    c[2] = a[4];
    c[3] = a[17];
    c[4] = a[19];
    c[5] = a[10];
    c[6] = a[9];
    c[7] = a[16];
    c[8] = a[14];
    d[1] = a[1];
    d[2] = a[2];
    d[3] = a[18];
    d[4] = a[20];
    d[5] = a[12];
    d[6] = a[11];
    d[7] = a[15];
    d[8] = a[13];
  } else {
    cout << "NO";
    return 0;
  }
  find = 1;
  find = 1;
  for (int i = 1; i <= 8; i++)
    if (c[(i + 1) % 8 + 1] != d[i]) {
      find = 0;
      break;
    }
  if (find == 1) {
    cout << "YES";
    return 0;
  }
  find = 1;
  for (int i = 1; i <= 8; i++)
    if (c[(i + 5) % 8 + 1] != d[i]) {
      find = 0;
      break;
    }
  if (find == 1) {
    cout << "YES";
    return 0;
  }
  cout << "NO";
  return 0;
}
int main() {
  int i;
  for (i = 1; i <= 24; i++) cin >> a[i];
  solve();
  return 0;
}
