stablegradients/pie-gem5-pairs huggingface dataset:
// Slower C++ solution:
#include<iostream>

#include<fstream>

#include<cstdio>

#include<algorithm>

#include<cstring>

#include<cmath>

#include<vector>

#include<map>

using namespace std;

typedef long long ll;

int main()

{

    int a[50][50],b[50],c[50][50]={0},d[50]={0};

    for(int i=0;i<3;i++)

    {

        for(int j=0;j<3;j++)

        cin>>a[i][j];

    }

    int n;

    cin>>n;

    for(int i=0;i<n;i++)

    cin>>b[i];

    for(int i=0;i<n;i++)

    {

        for(int j=0;j<3;j++)

        {

            for(int k=0;k<3;k++)

            {

                if(b[i]==a[j][k])

                {

                    c[j][k]=1;

                }

            }

        }

    }

    int sum1=0,sum2=0,sum3=0,sum4=0;

    for(int i=0;i<3;i++)

    {

        sum1=0;

        for(int j=0;j<3;j++)

        {

            if(c[i][j]==1)

            {

                sum1++;

            }

            if(sum1==3)

            break;

        }

        if(sum1==3)

        break;

    }

    for(int i=0;i<3;i++)

    {

        sum2=0;

        for(int j=0;j<3;j++)

        {

            if(c[j][i]==1)

            {

                sum2++;

            }

            if(sum2==3)

            break;

        }

        if(sum2==3)

        break;

    }

    for(int i=0;i<3;i++)

    {

        if(c[i][i]==1)

        {

            sum3++;

        }

    }

    for(int i=0;i<3;i++)

    {

        if(c[i][2-i]==1)

        {

            sum4++;

        }

    }

    if(sum1==3||sum2==3||sum3==3||sum4==3)

    cout<<"Yes";

    else 

    cout<<"No";

    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.300883333893561x):
#include<stdio.h>

int main(){

    int N, G[10];

    int a[3][3], ck[3][3];

 

    for(int i = 0 ; i < 3 ; i++ ) {

        scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);

    }



    scanf("%d",&N);



    for(int j = 0 ; j < N ; j++ ){

        scanf("%d",&G[j]);

 

        for(int  x = 0 ; x < 3 ; x++ ) {

            for(int z = 0 ; z < 3 ; z++ ){

                if( G[j] == a[x][z] ) {

                    ck[x][z] = 1;

                }

            }

        }

    }



    if( (ck[1][1] == 1 && ck[2][2] == 1 && ck[0][0] == 1  )

    ||(ck[2][0] == 1 && ck[1][1] == 1 && ck[0][2] == 1  )

    ||(ck[0][0] == 1 && ck[0][1] == 1 && ck[0][2] == 1  )

    ||(ck[1][0] == 1 && ck[1][1] == 1 && ck[1][2] == 1  )

    ||(ck[2][0] == 1 && ck[2][1] == 1 && ck[2][2] == 1  )

    ||(ck[0][0] == 1 && ck[1][0] == 1 && ck[2][0] == 1  )

    ||(ck[0][1] == 1 && ck[1][1] == 1 && ck[2][1] == 1  )

    || (ck[0][2] == 1 && ck[1][2] == 1 && ck[2][2] == 1  )

    ) {

        printf("Yes\n");

    } else {

        printf("No\n");

    }





    return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;



int a[5][5];

bool vis[5][5];



int main()

{

	ios::sync_with_stdio(false),cin.tie(0);

	for(int i=1;i<=3;i++){

		for(int j=1;j<=3;j++){

			cin>>a[i][j];

		}

	}

	int n;cin>>n;

	int num;

	for(int i=1;i<=n;i++){

		cin>>num;

		for(int k=1;k<=3;k++){

			for(int j=1;j<=3;j++){

				if(num==a[k][j])vis[k][j]=1;

			}

		}

	}

	bool flag=0;

	for(int i=1;i<=3;i++){

		if(vis[i][1]+vis[i][2]+vis[i][3]==3){

			flag=true;break;

		}

	}

	for(int i=1;i<=3;i++){

		if(flag)break;

		if(vis[1][i]+vis[2][i]+vis[3][i]==3){

			flag=true;break;

		}

	}

	if(!flag&&(vis[1][1]+vis[2][2]+vis[3][3]==3||vis[3][1]+vis[2][2]+vis[1][3]==3))flag=true;

	if(flag)cout<<"Yes"<<endl;

	else cout<<"No"<<endl;

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.332292871359122x):
#include<stdio.h>

int main(){

    int N, G[10];

    int a[3][3], ck[3][3];

 

    for(int i = 0 ; i < 3 ; i++ ) {

        scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);

    }



    scanf("%d",&N);



    for(int j = 0 ; j < N ; j++ ){

        scanf("%d",&G[j]);

 

        for(int  x = 0 ; x < 3 ; x++ ) {

            for(int z = 0 ; z < 3 ; z++ ){

                if( G[j] == a[x][z] ) {

                    ck[x][z] = 1;

                }

            }

        }

    }



    if( (ck[1][1] == 1 && ck[2][2] == 1 && ck[0][0] == 1  )

    ||(ck[2][0] == 1 && ck[1][1] == 1 && ck[0][2] == 1  )

    ||(ck[0][0] == 1 && ck[0][1] == 1 && ck[0][2] == 1  )

    ||(ck[1][0] == 1 && ck[1][1] == 1 && ck[1][2] == 1  )

    ||(ck[2][0] == 1 && ck[2][1] == 1 && ck[2][2] == 1  )

    ||(ck[0][0] == 1 && ck[1][0] == 1 && ck[2][0] == 1  )

    ||(ck[0][1] == 1 && ck[1][1] == 1 && ck[2][1] == 1  )

    || (ck[0][2] == 1 && ck[1][2] == 1 && ck[2][2] == 1  )

    ) {

        printf("Yes\n");

    } else {

        printf("No\n");

    }





    return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

	int n,a[15][15],b[15];

	for(int i=1;i<=3;i++)

		for(int j=1;j<=3;j++)

		    cin>>a[i][j];

	cin>>n;

	for(int i=1;i<=n;i++)

	    cin>>b[i];

	for(int i=1;i<=3;i++)

	{

		for(int j=1;j<=3;j++)

		{

			for(int k=1;k<=n;k++)

			{

				if(a[i][j]==b[k])

				{

					a[i][j]=0;

					break;

				}

			}

		}

	}

	int i,j,flag=0;

	if(a[1][1]==0&&a[2][2]==0&&a[3][3]==0)

	    flag=1;

	else if(a[1][3]==0&&a[2][2]==0&&a[3][1]==0)

	    flag=1;

	for(i=1;i<=3;i++)

	{

		if(a[i][1]==0&&a[i][2]==0&&a[i][3]==0)

		    flag=1;

		else if(a[1][i]==0&&a[2][i]==0&&a[3][i]==0)

		    flag=1;

	}

	if(flag==1)

	    cout<<"Yes"<<endl;

	else

	    cout<<"No"<<endl;

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.282482642145626x):
#include <stdio.h>

#include <stdlib.h>

 

int main()

{

  int a[3][3];

  int n, b,c[3][3]={0},count;

 

  for(int i=0; i<3; i++){

    for(int j=0; j<3; j++){

      scanf("%d",&a[i][j] );

    }

  }

  scanf("%d",&n );

 

  for(int k=0; k<n; k++)

  {

    scanf("%d",&b);

    for(int i=0; i<3; i++){

      for(int j=0; j<3; j++){

        if(a[i][j] == b)

          c[i][j] = 1;

      }

    }

  }

 

  if(c[0][0]+c[1][1]+c[2][2]==3||c[0][2]+c[1][1]+c[2][0]==3){

      puts("Yes");

      return 0;

    }

 

  for(int i=0;i<3;i++){

      if(c[i][0]+c[i][1]+c[i][2]==3||c[0][i]+c[1][i]+c[2][i]==3){

        puts("Yes");

        return 0;

      }

    }

 

    puts("No");

 

    return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

	int a[3][3];

	for(int i=0;i<3;i++)

	{

		for(int j=0;j<3;j++)

		{

			cin>>a[i][j];

		}

	}

	int t,b;

	cin>>t;

	while(t--)

	{

		cin>>b;

		for(int i=0;i<3;i++)

		{

			for(int j=0;j<3;j++)

			{

				if(a[i][j]==b)

				  a[i][j]=0;

			}

		}

	}

	bool flag1=0,flag2=0,flag3=0;

	for(int i=0;i<3;i++)

	{

		for(int j=0;j<3;j++)

		{

			if(a[i][j])

			  break;

			if(j==2&&a[i][j]==0)

			  flag1=1;

		}

	}

	for(int j=0;j<3;j++)

	{

		for(int i=0;i<3;i++)

		{

			if(a[i][j])

			  break;

			if(i==2&&a[i][j]==0)

			  flag2=1;

		}

	}

	for(int i=0;i<3;i++)

	{

		if(a[i][i])

		  break;

		if(i==2&&a[i][i]==0)

		  flag3=1;

	}

	for(int i=0;i<3;i++)

	{

		if(a[i][2-i])

		  break;

		if(i==2&&a[i][2-i]==0)

		  flag3=1;

	}

	if(flag1||flag2||flag3)

	  cout<<"Yes"<<endl;

	else

	  cout<<"No"<<endl;

 } 

// Faster C++ solution for the same problem (measured speedup: 5.28335536753592x):
#include <stdio.h>

#include <stdlib.h>

 

int main()

{

  int a[3][3];

  int n, b,c[3][3]={0},count;

 

  for(int i=0; i<3; i++){

    for(int j=0; j<3; j++){

      scanf("%d",&a[i][j] );

    }

  }

  scanf("%d",&n );

 

  for(int k=0; k<n; k++)

  {

    scanf("%d",&b);

    for(int i=0; i<3; i++){

      for(int j=0; j<3; j++){

        if(a[i][j] == b)

          c[i][j] = 1;

      }

    }

  }

 

  if(c[0][0]+c[1][1]+c[2][2]==3||c[0][2]+c[1][1]+c[2][0]==3){

      puts("Yes");

      return 0;

    }

 

  for(int i=0;i<3;i++){

      if(c[i][0]+c[i][1]+c[i][2]==3||c[0][i]+c[1][i]+c[2][i]==3){

        puts("Yes");

        return 0;

      }

    }

 

    puts("No");

 

    return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

	int n,a[15][15],b[15];

	for(int i=1;i<=3;i++)

		for(int j=1;j<=3;j++)

		    cin>>a[i][j];

	cin>>n;

	for(int i=1;i<=n;i++)

	    cin>>b[i];

	for(int i=1;i<=3;i++)

	{

		for(int j=1;j<=3;j++)

		{

			for(int k=1;k<=n;k++)

			{

				if(a[i][j]==b[k])

				{

					a[i][j]=0;

					break;

				}

			}

		}

	}

	int i,j,flag=0;

	if(a[1][1]==0&&a[2][2]==0&&a[3][3]==0)

	    flag=1;

	else if(a[1][3]==0&&a[2][2]==0&&a[3][1]==0)

	    flag=1;

	for(i=1;i<=3;i++)

	{

		if(a[i][1]==0&&a[i][2]==0&&a[i][3]==0)

		    flag=1;

		else if(a[1][i]==0&&a[2][i]==0&&a[3][i]==0)

		    flag=1;

	}

	if(flag==1)

	    cout<<"Yes"<<endl;

	else

	    cout<<"No"<<endl;

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.270941650704654x):
#include<stdio.h>

 

 

int main(){

 

    int A[3][3], x , B[10], check[3][3];

 

    for(int i = 0 ; i < 3 ; i++ ) {

        scanf("%d %d %d",&A[i][0],&A[i][1],&A[i][2]);

    }

 

    scanf("%d",&x);

    

    for(int j = 0 ; j < x ; j++ ){

        scanf("%d",&B[j]);

 

        for(int  l = 0 ; l < 3 ; l++ ) {

            for(int k = 0 ; k < 3 ; k++ ){

                if( B[j] == A[l][k] ) {

                    check[l][k] = 1;

                }

            }   

        }

    }   

    

    if( (check[1][1] == 1 && check[2][2] == 1 && check[0][0] == 1  )

    || (check[2][0] == 1 && check[1][1] == 1 && check[0][2] == 1  )

    || (check[0][0] == 1 && check[0][1] == 1 && check[0][2] == 1  )

    || (check[1][0] == 1 && check[1][1] == 1 && check[1][2] == 1  )

    || (check[2][0] == 1 && check[2][1] == 1 && check[2][2] == 1  )

    || (check[0][0] == 1 && check[1][0] == 1 && check[2][0] == 1  )

    || (check[0][1] == 1 && check[1][1] == 1 && check[2][1] == 1  )

    || (check[0][2] == 1 && check[1][2] == 1 && check[2][2] == 1  )

    ) {   

        printf("Yes\n");

    } else {

        printf("No\n");

    }

 

        return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

	int a[3][3];

	for(int i=0;i<3;i++)

	{

		for(int j=0;j<3;j++)

		{

			cin>>a[i][j];

		}

	}

	int t,b;

	cin>>t;

	while(t--)

	{

		cin>>b;

		for(int i=0;i<3;i++)

		{

			for(int j=0;j<3;j++)

			{

				if(a[i][j]==b)

				  a[i][j]=0;

			}

		}

	}

	bool flag1=0,flag2=0,flag3=0;

	for(int i=0;i<3;i++)

	{

		for(int j=0;j<3;j++)

		{

			if(a[i][j])

			  break;

			if(j==2&&a[i][j]==0)

			  flag1=1;

		}

	}

	for(int j=0;j<3;j++)

	{

		for(int i=0;i<3;i++)

		{

			if(a[i][j])

			  break;

			if(i==2&&a[i][j]==0)

			  flag2=1;

		}

	}

	for(int i=0;i<3;i++)

	{

		if(a[i][i])

		  break;

		if(i==2&&a[i][i]==0)

		  flag3=1;

	}

	for(int i=0;i<3;i++)

	{

		if(a[i][2-i])

		  break;

		if(i==2&&a[i][2-i]==0)

		  flag3=1;

	}

	if(flag1||flag2||flag3)

	  cout<<"Yes"<<endl;

	else

	  cout<<"No"<<endl;

 } 

// Faster C++ solution for the same problem (measured speedup: 5.271812469393697x):
#include<stdio.h>

 

 

int main(){

 

    int A[3][3], x , B[10], check[3][3];

 

    for(int i = 0 ; i < 3 ; i++ ) {

        scanf("%d %d %d",&A[i][0],&A[i][1],&A[i][2]);

    }

 

    scanf("%d",&x);

    

    for(int j = 0 ; j < x ; j++ ){

        scanf("%d",&B[j]);

 

        for(int  l = 0 ; l < 3 ; l++ ) {

            for(int k = 0 ; k < 3 ; k++ ){

                if( B[j] == A[l][k] ) {

                    check[l][k] = 1;

                }

            }   

        }

    }   

    

    if( (check[1][1] == 1 && check[2][2] == 1 && check[0][0] == 1  )

    || (check[2][0] == 1 && check[1][1] == 1 && check[0][2] == 1  )

    || (check[0][0] == 1 && check[0][1] == 1 && check[0][2] == 1  )

    || (check[1][0] == 1 && check[1][1] == 1 && check[1][2] == 1  )

    || (check[2][0] == 1 && check[2][1] == 1 && check[2][2] == 1  )

    || (check[0][0] == 1 && check[1][0] == 1 && check[2][0] == 1  )

    || (check[0][1] == 1 && check[1][1] == 1 && check[2][1] == 1  )

    || (check[0][2] == 1 && check[1][2] == 1 && check[2][2] == 1  )

    ) {   

        printf("Yes\n");

    } else {

        printf("No\n");

    }

 

        return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

	int n,a[15][15],b[15];

	for(int i=1;i<=3;i++)

		for(int j=1;j<=3;j++)

		    cin>>a[i][j];

	cin>>n;

	for(int i=1;i<=n;i++)

	    cin>>b[i];

	for(int i=1;i<=3;i++)

	{

		for(int j=1;j<=3;j++)

		{

			for(int k=1;k<=n;k++)

			{

				if(a[i][j]==b[k])

				{

					a[i][j]=0;

					break;

				}

			}

		}

	}

	int i,j,flag=0;

	if(a[1][1]==0&&a[2][2]==0&&a[3][3]==0)

	    flag=1;

	else if(a[1][3]==0&&a[2][2]==0&&a[3][1]==0)

	    flag=1;

	for(i=1;i<=3;i++)

	{

		if(a[i][1]==0&&a[i][2]==0&&a[i][3]==0)

		    flag=1;

		else if(a[1][i]==0&&a[2][i]==0&&a[3][i]==0)

		    flag=1;

	}

	if(flag==1)

	    cout<<"Yes"<<endl;

	else

	    cout<<"No"<<endl;

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.262066751095273x):
#include <stdio.h>

int main(){

    int a[3][3]={0}, i, j, k;

    for(i=0; i<3; i++){

        for(j=0; j<3; j++){

            scanf("%d", &a[i][j]);

        }

    }

    int n, m;

    scanf("%d",&n);

    for(i=0; i<n; i++){

        scanf("%d",&m);

        for(j=0; j<3; j++){

            for(k=0; k<3; k++){

                if(a[j][k]==m){ a[j][k]=0; }

            }

        }

    }

    int flag=0;

    for(i=0; i<3; i++){

        if( a[i][0]==0 && a[i][1]==0 && a[i][2]==0 ){ flag=1; }

        if( a[0][i]==0 && a[1][i]==0 && a[2][i]==0 ){ flag=1; }

    }

    if( a[0][0]==0 && a[1][1]==0 && a[2][2]==0 ){ flag=1; }

    if( a[0][2]==0 && a[1][1]==0 && a[2][0]==0 ){ flag=1; }

 

    if( flag ){ printf("Yes\n"); }

    else      { printf("No\n");  }

    return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

	int a[3][3];

	for(int i=0;i<3;i++)

	{

		for(int j=0;j<3;j++)

		{

			cin>>a[i][j];

		}

	}

	int t,b;

	cin>>t;

	while(t--)

	{

		cin>>b;

		for(int i=0;i<3;i++)

		{

			for(int j=0;j<3;j++)

			{

				if(a[i][j]==b)

				  a[i][j]=0;

			}

		}

	}

	bool flag1=0,flag2=0,flag3=0;

	for(int i=0;i<3;i++)

	{

		for(int j=0;j<3;j++)

		{

			if(a[i][j])

			  break;

			if(j==2&&a[i][j]==0)

			  flag1=1;

		}

	}

	for(int j=0;j<3;j++)

	{

		for(int i=0;i<3;i++)

		{

			if(a[i][j])

			  break;

			if(i==2&&a[i][j]==0)

			  flag2=1;

		}

	}

	for(int i=0;i<3;i++)

	{

		if(a[i][i])

		  break;

		if(i==2&&a[i][i]==0)

		  flag3=1;

	}

	for(int i=0;i<3;i++)

	{

		if(a[i][2-i])

		  break;

		if(i==2&&a[i][2-i]==0)

		  flag3=1;

	}

	if(flag1||flag2||flag3)

	  cout<<"Yes"<<endl;

	else

	  cout<<"No"<<endl;

 } 

// Faster C++ solution for the same problem (measured speedup: 5.262936103551343x):
#include <stdio.h>

int main(){

    int a[3][3]={0}, i, j, k;

    for(i=0; i<3; i++){

        for(j=0; j<3; j++){

            scanf("%d", &a[i][j]);

        }

    }

    int n, m;

    scanf("%d",&n);

    for(i=0; i<n; i++){

        scanf("%d",&m);

        for(j=0; j<3; j++){

            for(k=0; k<3; k++){

                if(a[j][k]==m){ a[j][k]=0; }

            }

        }

    }

    int flag=0;

    for(i=0; i<3; i++){

        if( a[i][0]==0 && a[i][1]==0 && a[i][2]==0 ){ flag=1; }

        if( a[0][i]==0 && a[1][i]==0 && a[2][i]==0 ){ flag=1; }

    }

    if( a[0][0]==0 && a[1][1]==0 && a[2][2]==0 ){ flag=1; }

    if( a[0][2]==0 && a[1][1]==0 && a[2][0]==0 ){ flag=1; }

 

    if( flag ){ printf("Yes\n"); }

    else      { printf("No\n");  }

    return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

	int n,a[15][15],b[15];

	for(int i=1;i<=3;i++)

		for(int j=1;j<=3;j++)

		    cin>>a[i][j];

	cin>>n;

	for(int i=1;i<=n;i++)

	    cin>>b[i];

	for(int i=1;i<=3;i++)

	{

		for(int j=1;j<=3;j++)

		{

			for(int k=1;k<=n;k++)

			{

				if(a[i][j]==b[k])

				{

					a[i][j]=0;

					break;

				}

			}

		}

	}

	int i,j,flag=0;

	if(a[1][1]==0&&a[2][2]==0&&a[3][3]==0)

	    flag=1;

	else if(a[1][3]==0&&a[2][2]==0&&a[3][1]==0)

	    flag=1;

	for(i=1;i<=3;i++)

	{

		if(a[i][1]==0&&a[i][2]==0&&a[i][3]==0)

		    flag=1;

		else if(a[1][i]==0&&a[2][i]==0&&a[3][i]==0)

		    flag=1;

	}

	if(flag==1)

	    cout<<"Yes"<<endl;

	else

	    cout<<"No"<<endl;

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.263477421738379x):
#include <stdio.h>



int main() {



	int mat[3][3];

	

	for(int i = 0; i < 3; i++) {

		for(int j = 0; j < 3; j++) {

			scanf("%d", &mat[i][j]);

		}

	}		

	int c[3][3] = {};

	int a;

		

		scanf("%d", &a);

	

	int b;

		

	for(int i = 0; i < a; i++) {

		

		scanf("%d", &b);

	

	for(int j = 0; j < 3; j++) {

		for(int k = 0; k < 3; k++) {

			if(b == mat[j][k]) {

				c[j][k]++;

				

				if((c[0][0] > 0 && c[0][1] > 0 && c[0][2] > 0) || (c[1][0] > 0 && c[1][1] > 0 && c[1][2] > 0) || (c[2][0] > 0 && c[2][1] > 0 && c[2][2] > 0) || (c[0][0] > 0 && c[1][0] > 0 && c[2][0] > 0) || (c[0][1] > 0 && c[1][1] > 0 && c[2][1] > 0) || (c[0][2] > 0 && c[1][2] > 0 && c[2][2] > 0) || (c[0][2] > 0 && c[1][1] > 0 && c[2][0] > 0) || (c[0][0] > 0 && c[1][1] > 0 && c[2][2] > 0)) {

			printf("Yes");

			return 0;

				}

			}

		}

	}

}

printf("No");

	return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

	int a[3][3];

	for(int i=0;i<3;i++)

	{

		for(int j=0;j<3;j++)

		{

			cin>>a[i][j];

		}

	}

	int t,b;

	cin>>t;

	while(t--)

	{

		cin>>b;

		for(int i=0;i<3;i++)

		{

			for(int j=0;j<3;j++)

			{

				if(a[i][j]==b)

				  a[i][j]=0;

			}

		}

	}

	bool flag1=0,flag2=0,flag3=0;

	for(int i=0;i<3;i++)

	{

		for(int j=0;j<3;j++)

		{

			if(a[i][j])

			  break;

			if(j==2&&a[i][j]==0)

			  flag1=1;

		}

	}

	for(int j=0;j<3;j++)

	{

		for(int i=0;i<3;i++)

		{

			if(a[i][j])

			  break;

			if(i==2&&a[i][j]==0)

			  flag2=1;

		}

	}

	for(int i=0;i<3;i++)

	{

		if(a[i][i])

		  break;

		if(i==2&&a[i][i]==0)

		  flag3=1;

	}

	for(int i=0;i<3;i++)

	{

		if(a[i][2-i])

		  break;

		if(i==2&&a[i][2-i]==0)

		  flag3=1;

	}

	if(flag1||flag2||flag3)

	  cout<<"Yes"<<endl;

	else

	  cout<<"No"<<endl;

 } 

// Faster C++ solution for the same problem (measured speedup: 5.264347007253066x):
#include <stdio.h>



int main() {



	int mat[3][3];

	

	for(int i = 0; i < 3; i++) {

		for(int j = 0; j < 3; j++) {

			scanf("%d", &mat[i][j]);

		}

	}		

	int c[3][3] = {};

	int a;

		

		scanf("%d", &a);

	

	int b;

		

	for(int i = 0; i < a; i++) {

		

		scanf("%d", &b);

	

	for(int j = 0; j < 3; j++) {

		for(int k = 0; k < 3; k++) {

			if(b == mat[j][k]) {

				c[j][k]++;

				

				if((c[0][0] > 0 && c[0][1] > 0 && c[0][2] > 0) || (c[1][0] > 0 && c[1][1] > 0 && c[1][2] > 0) || (c[2][0] > 0 && c[2][1] > 0 && c[2][2] > 0) || (c[0][0] > 0 && c[1][0] > 0 && c[2][0] > 0) || (c[0][1] > 0 && c[1][1] > 0 && c[2][1] > 0) || (c[0][2] > 0 && c[1][2] > 0 && c[2][2] > 0) || (c[0][2] > 0 && c[1][1] > 0 && c[2][0] > 0) || (c[0][0] > 0 && c[1][1] > 0 && c[2][2] > 0)) {

			printf("Yes");

			return 0;

				}

			}

		}

	}

}

printf("No");

	return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

	int n,a[15][15],b[15];

	for(int i=1;i<=3;i++)

		for(int j=1;j<=3;j++)

		    cin>>a[i][j];

	cin>>n;

	for(int i=1;i<=n;i++)

	    cin>>b[i];

	for(int i=1;i<=3;i++)

	{

		for(int j=1;j<=3;j++)

		{

			for(int k=1;k<=n;k++)

			{

				if(a[i][j]==b[k])

				{

					a[i][j]=0;

					break;

				}

			}

		}

	}

	int i,j,flag=0;

	if(a[1][1]==0&&a[2][2]==0&&a[3][3]==0)

	    flag=1;

	else if(a[1][3]==0&&a[2][2]==0&&a[3][1]==0)

	    flag=1;

	for(i=1;i<=3;i++)

	{

		if(a[i][1]==0&&a[i][2]==0&&a[i][3]==0)

		    flag=1;

		else if(a[1][i]==0&&a[2][i]==0&&a[3][i]==0)

		    flag=1;

	}

	if(flag==1)

	    cout<<"Yes"<<endl;

	else

	    cout<<"No"<<endl;

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.265661837324253x):
#include <stdio.h>



int main() {



	int arr[3][3]={};

	for(int i=0; i<3; i++){

		for(int j=0; j<3; j++){

			scanf("%d", &arr[i][j]);

		}

	}

	

	int n;

	scanf("%d", &n);

	int call;

	for(int k=0; k<n; k++){

		scanf("%d", &call);

		for(int i=0; i<3; i++){

			for(int j=0; j<3; j++){

			if(arr[i][j]==call){

				arr[i][j]=0;

			}

		}

			}

			

	}

	

	if(arr[0][0]==0&&arr[0][1]==0&&arr[0][2]==0 || arr[1][0]==0&&arr[1][1]==0&&arr[1][2]==0 || arr[2][0]==0&&arr[2][1]==0&&arr[2][2]==0 || arr[0][0]==0&&arr[1][0]==0&&arr[2][0]==0 || arr[0][1]==0&&arr[1][1]==0&&arr[2][1]==0 || arr[0][2]==0&&arr[1][2]==0&&arr[2][2]==0 || arr[0][0]==0&&arr[1][1]==0&&arr[2][2]==0 || arr[0][2]==0&&arr[1][1]==0&&arr[2][0]==0){

		printf("Yes\n");

	}

	else {

		printf("No\n");

	}



    return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

	int a[3][3];

	for(int i=0;i<3;i++)

	{

		for(int j=0;j<3;j++)

		{

			cin>>a[i][j];

		}

	}

	int t,b;

	cin>>t;

	while(t--)

	{

		cin>>b;

		for(int i=0;i<3;i++)

		{

			for(int j=0;j<3;j++)

			{

				if(a[i][j]==b)

				  a[i][j]=0;

			}

		}

	}

	bool flag1=0,flag2=0,flag3=0;

	for(int i=0;i<3;i++)

	{

		for(int j=0;j<3;j++)

		{

			if(a[i][j])

			  break;

			if(j==2&&a[i][j]==0)

			  flag1=1;

		}

	}

	for(int j=0;j<3;j++)

	{

		for(int i=0;i<3;i++)

		{

			if(a[i][j])

			  break;

			if(i==2&&a[i][j]==0)

			  flag2=1;

		}

	}

	for(int i=0;i<3;i++)

	{

		if(a[i][i])

		  break;

		if(i==2&&a[i][i]==0)

		  flag3=1;

	}

	for(int i=0;i<3;i++)

	{

		if(a[i][2-i])

		  break;

		if(i==2&&a[i][2-i]==0)

		  flag3=1;

	}

	if(flag1||flag2||flag3)

	  cout<<"Yes"<<endl;

	else

	  cout<<"No"<<endl;

 } 

// Faster C++ solution for the same problem (measured speedup: 5.266531783728898x):
#include <stdio.h>



int main() {



	int arr[3][3]={};

	for(int i=0; i<3; i++){

		for(int j=0; j<3; j++){

			scanf("%d", &arr[i][j]);

		}

	}

	

	int n;

	scanf("%d", &n);

	int call;

	for(int k=0; k<n; k++){

		scanf("%d", &call);

		for(int i=0; i<3; i++){

			for(int j=0; j<3; j++){

			if(arr[i][j]==call){

				arr[i][j]=0;

			}

		}

			}

			

	}

	

	if(arr[0][0]==0&&arr[0][1]==0&&arr[0][2]==0 || arr[1][0]==0&&arr[1][1]==0&&arr[1][2]==0 || arr[2][0]==0&&arr[2][1]==0&&arr[2][2]==0 || arr[0][0]==0&&arr[1][0]==0&&arr[2][0]==0 || arr[0][1]==0&&arr[1][1]==0&&arr[2][1]==0 || arr[0][2]==0&&arr[1][2]==0&&arr[2][2]==0 || arr[0][0]==0&&arr[1][1]==0&&arr[2][2]==0 || arr[0][2]==0&&arr[1][1]==0&&arr[2][0]==0){

		printf("Yes\n");

	}

	else {

		printf("No\n");

	}



    return 0;

}
// Slower C++ solution:
#include<iostream>

using namespace std;

int main()

{

	int n,a[15][15],b[15];

	for(int i=1;i<=3;i++)

		for(int j=1;j<=3;j++)

		    cin>>a[i][j];

	cin>>n;

	for(int i=1;i<=n;i++)

	    cin>>b[i];

	for(int i=1;i<=3;i++)

	{

		for(int j=1;j<=3;j++)

		{

			for(int k=1;k<=n;k++)

			{

				if(a[i][j]==b[k])

				{

					a[i][j]=0;

					break;

				}

			}

		}

	}

	int i,j,flag=0;

	if(a[1][1]==0&&a[2][2]==0&&a[3][3]==0)

	    flag=1;

	else if(a[1][3]==0&&a[2][2]==0&&a[3][1]==0)

	    flag=1;

	for(i=1;i<=3;i++)

	{

		if(a[i][1]==0&&a[i][2]==0&&a[i][3]==0)

		    flag=1;

		else if(a[1][i]==0&&a[2][i]==0&&a[3][i]==0)

		    flag=1;

	}

	if(flag==1)

	    cout<<"Yes"<<endl;

	else

	    cout<<"No"<<endl;

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.265937870269184x):
#include<stdio.h>

int main(){

	int arr[3][3];

	int tc;

	int add;

	int check[3][3]= {0};

	int count;

	int i,j;

	for(i=0;i<3;i++){

		for(j=0;j<3;j++){

			scanf("%d", &arr[i][j]);

		}

	}

	scanf("%d",&tc);

	int k;

	

	for(k=0;k<tc;k++){

		scanf("%d",&add);

		int j;

		for(i=0;i<3;i++){

			for(j=0;j<3;j++){

				if(arr[i][j]== add){

					check[i][j] = 1;

				}

			}

		}

	}

	if(check[0][0]+ check [1][1]+ check[2][2]== 3 || check [0][2]+check [1][1]+ check[2][0]==3){

		printf("Yes\n");

		return 0;

	}

	for(i=0;i<3;i++){

		if(check[i][0]+check[i][1]+check[i][2]==3 || check [0][i]+check[1][i]+check[2][i]==3){

			printf("Yes\n");

			return 0;

		}

	}

	printf("No\n");

	

	return 0;

}