#include<cstring> #include<cstdio> #include<cctype> #include<cmath> #include<iostream> usingnamespace std; #define ll long long #define ri register int
inlineintread(){ char v = getchar();int x = 0,f = 1; while (!isdigit(v)) {if (v == '-')f = -1;v = getchar();} while (isdigit(v)) {x = x * 10 + v - 48;v = getchar();} return x * f; } constint N = 10; constint INF = 0x3f3f3f3f;
template <typename T> inline T max(T x,T y){return x>y?x:y;}
int a[N][N]; constint dx[5] = {0,0,1,0,-1},dy[5] = {0,1,0,-1,0};
voidchange(int x,int y){ for (int i = 0;i < 5;++i) { int ax = x + dx[i],ay = y + dy[i]; if (ax < 0 || ax > 4 || ay < 0 || ay > 5) continue; a[ax][ay] ^= 1; } return ; }
boolcheck(){ bool success = 1; for (int i = 0;i < 6;++i) { if (a[4][i]) { success = 0; } } return success; }
voidwork(){ for (int k = 0;k < (1<<6);++k) { int b[N][N],pos[N][N]; memset(pos,0,sizeof pos); memcpy(b,a,sizeof(a)); for (int i = 0;i < 6;++i) { if (k & (1 << i)) { change(0,i); pos[0][i] = 1; } } for (int i = 1;i < 5;++i) { for (int j = 0;j < 6;++j) { if (a[i-1][j]) { pos[i][j] = 1; change(i,j); } } } if (check()) { for (int i = 0;i < 5;++i) { for (int j = 0;j < 5;++j) { printf("%d ", pos[i][j]); } printf("%d\n",pos[i][5]); } return ; } memcpy(a,b,sizeof(b)); } return ; }
signedmain(){ int T = read(); for(int q = 1;q <= T;++q) { for (int i = 0;i < 5;++i) { for (int j = 0;j < 6;++j) { cin >> a[i][j]; } } printf("PUZZLE #%d\n",q); work(); } return0; }