int n,k,s[1d3],u[500],e[5d5],f[5d5];graph g;{rd(n,(s--)(2n),u(n));rep(i,n)rep(j,n)f[k+1]=1^(e[k]=2s[i]*n+2j+u[i]%2),f[k]=1^(e[k+1]=2j*n+2s[i+n]+u[i]/2),k+=2;g.setDirectEdge(k,k,e,f);g.scc(e);rep(i,n*n)e[2i]-e[2i+1]?e[i]=e[2i]