//用f数组记录行列状态 a数组记录四个2×2块的状态

#include #include

using namespace std; int f[9][5];

int a[5][5];

int main(){

int t;

cin>>t;

while(t--){

	memset(f,0,sizeof f);

	memset(a,0,sizeof a);

	bool bl=1;

	for(int i=1;i<=4;++i){
                          
		for(int j=1;j<=4;++j){

			int b;

			cin>>b;

			if(f[i][b]==1||f[j+4][b]==1){

				bl=0;

				break;

			}
			a[(i>2?2:1)+((j>2?2:1)-1)*2][b]++;

			f[i][b]=1;

			f[4+j][b]=1;

		}
		if(!bl)break;

	}
	for(int i=1;i<=4;++i){
                          
		for(int j=1;j<=4;++j){

			if(a[i][j]!=1){

				bl=0;

				break;

			}
		}
	}
	if(bl)cout<<"YES"<<endl;

	else cout<<"NO"<<endl;
}	

return 0;

}