#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; bool map[10][10]; bool press[10][10]; int add4(int x,int y) { int s=map[x][y]+press[x][y]+press[x-1][y]+press[x][y-1]+press[x][y+1]; return s; } void create(int i,int j,int k,int x,int y,int z) { int m,n; press[1][1]=i;press[1][2]=j;press[1][3]=k; press[1][4]=x;press[1][5]=y;press[1][6]=z; for(m=2;m<=5;m++) for(n=1;n<=6;n++) press[m][n]=add4(m-1,n)%2; } bool Check() { for(int i=1;i<=6;i++) if(add4(5,i)%2!=0) return 0; return 1; } int main () { int t,cas,i,j,k,x,y,z,m,n; cin>>t; for(cas=1;cas<=t;cas++) { for(i=1;i<=5;i++) for(j=1;j<=6;j++) cin>>map[i][j]; for(i=0;i<8;i++) { map[0][i]=0;map[6][i]=0;map[i][0]=0;map[i][7]=0; } for(i=0;i<2;i++) for(j=0;j<2;j++) for(k=0;k<2;k++) for(x=0;x<2;x++) for(y=0;y<2;y++) for(z=0;z<2;z++) { create(i,j,k,x,y,z); if(Check()) { cout<<"PUZZLE #"<<cas<<endl; for(m=1;m<=5;m++) { for(n=1;n<=6;n++) cout<<press[m][n]<<" "; cout<<endl; } break; } } } return 0; }