#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
const int mod = 1e9 + 7;
void solve() {
  vector<int> a(25);
  for (int i = 1; i <= 24; i++) cin >> a[i];
  bool f = 0;
  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]) {
    if (a[13] == a[14] && a[14] == a[7] && a[7] == a[8]) {
      if (a[5] == a[6] && a[6] == a[19] && a[19] == a[20]) {
        if (a[17] == a[18] && a[18] == a[23] && a[23] == a[24]) f = 1;
      }
    }
    if (a[15] == a[16] && a[16] == a[5] && a[5] == a[6]) {
      if (a[7] == a[8] && a[8] == a[17] && a[17] == a[18]) {
        if (a[19] == a[20] && a[20] == a[21] && a[21] == a[22]) f = 1;
      }
    }
  }
  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]) {
    if (a[1] == a[3] && a[3] == a[6] && a[6] == a[8]) {
      if (a[5] == a[7] && a[7] == a[10] && a[10] == a[12]) {
        if (a[9] == a[11] && a[11] == a[21] && a[21] == a[23]) f = 1;
      }
    }
    if (a[2] == a[4] && a[4] == a[5] && a[5] == a[7]) {
      if (a[6] == a[8] && a[8] == a[9] && a[9] == a[11]) {
        if (a[10] == a[12] && a[12] == a[22] && a[22] == a[24]) f = 1;
      }
    }
  }
  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]) {
    if (a[3] == a[4] && a[4] == a[18] && a[18] == a[20]) {
      if (a[17] == a[19] && a[19] == a[11] && a[11] == a[12]) {
        if (a[9] == a[10] && a[10] == a[13] && a[13] == a[15]) f = 1;
      }
    }
    if (a[3] == a[4] && a[4] == a[13] && a[13] == a[15]) {
      if (a[14] == a[16] && a[16] == a[11] && a[11] == a[12]) {
        if (a[9] == a[10] && a[10] == a[18] && a[18] == a[20]) f = 1;
      }
    }
  }
  if (f)
    cout << "YES" << endl;
  else
    cout << "NO" << endl;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int t = 1;
  while (t--) solve();
  return 0;
}
