#include <bits/stdc++.h>
using namespace std;
bool done(int A[25]) {
  for (int i = 0; i < 6; i++) {
    if (A[4 * i + 1] == A[4 * i + 2] && A[4 * i + 1] == A[4 * i + 3] &&
        A[4 * i + 1] == A[4 * i + 4]) {
    } else {
      return false;
    }
  }
  return true;
}
void print(int A[25]) {
  for (int i = 1; i < 25; i++) {
    cout << A[i] << " ";
  }
  cout << endl;
}
void RA(int A[25]) {
  swap(A[21], A[2]);
  swap(A[23], A[4]);
  swap(A[2], A[6]);
  swap(A[4], A[8]);
  swap(A[6], A[10]);
  swap(A[8], A[12]);
}
void RC(int A[25]) {
  RA(A);
  RA(A);
  RA(A);
}
void FA(int A[25]) {
  swap(A[15], A[23]);
  swap(A[16], A[24]);
  swap(A[19], A[23]);
  swap(A[20], A[24]);
  swap(A[7], A[19]);
  swap(A[8], A[20]);
}
void FC(int A[25]) {
  FA(A);
  FA(A);
  FA(A);
}
void TA(int A[25]) {
  swap(A[2], A[13]);
  swap(A[1], A[15]);
  swap(A[2], A[20]);
  swap(A[1], A[18]);
  swap(A[20], A[11]);
  swap(A[18], A[12]);
}
void TC(int A[25]) {
  TA(A);
  TA(A);
  TA(A);
}
int main() {
  int A[25];
  for (int i = 1; i < 25; i++) {
    cin >> A[i];
  }
  int flag = 0;
  RA(A);
  if (done(A)) {
    cout << "YES";
    flag = 1;
  }
  RC(A);
  TA(A);
  if (done(A)) {
    cout << "YES";
    flag = 1;
  }
  TC(A);
  FA(A);
  if (done(A)) {
    cout << "YES";
    flag = 1;
  }
  FC(A);
  RC(A);
  if (done(A)) {
    cout << "YES";
    flag = 1;
  }
  RA(A);
  TC(A);
  if (done(A)) {
    cout << "YES";
    flag = 1;
  }
  TA(A);
  FC(A);
  if (done(A)) {
    cout << "YES";
    flag = 1;
  }
  FA(A);
  if (flag == 0) {
    cout << "NO";
  }
}
