#include using namespace std; typedef long long ll; typedef pair pii; #define FOR(i,a,n) for(int i=a;i<(int)(n);i++) #define REP(i,n) FOR(i,0,n) #define ALL(a) (a).begin(),(a).end() #define MP(a,b) make_pair(a,b) #define PB(a) push_back(a) #define F first #define S second const int INF = 2000000000; const int DX[4]={0,1,0,-1}, DY[4]={-1,0,1,0}; struct P{int x;int y;P(int X=0,int Y=0){x=X;y=Y;}}; int b[6][6] = { {0,0,0,0,0,0}, {0,0,0,0,0,0}, {0,0,0,0,0,0}, {0,0,0,0,0,0}, {0,0,0,0,0,0}, {0,0,0,0,0,0}, }; int main() { REP(i,4) { REP(j,4) { int a; cin >> a; b[i+1][j+1] = a; } } int c = 1; REP(i,4) { REP(j,4) { if(c==16) { goto end; } bool change = false; if(b[i+1][j+1]==c) change = true; int nx,ny; REP(k,4) { nx = j + DX[k]; ny = i + DY[k]; if(b[ny+1][nx+1]==c) { change = true; } } if(!change) { cout << "No" << endl; return 0; } c++; } } end: cout << "Yes" << endl; return 0; }