output_description: If there exists a matrix that satisfies the conditions, print one such matrix
  in the following format:
  
      
      
      a_{1,1} ...  a_{1,N}
      :
      a_{N,1} ...  a_{N,N}
      
  
  Note that any matrix satisfying the conditions is accepted.
  
  If no matrix satisfies the conditions, print -1.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      S_{1} S_{2} ...  S_{N}
      T_{1} T_{2} ...  T_{N}
      U_{1} U_{2} ...  U_{N}
      V_{1} V_{2} ...  V_{N}
attempt: N = int(input())
  slist = list(map(int, input().split()))
  tlist = list(map(int, input().split()))
  ulist = list(map(int, input().split()))
  vlist = list(map(int, input().split()))
  
  max_digit = 4
  amat = [[[-1] * max_digit for _ in range(N)] for _ in range(N)]
  
  for i in range(N):
      s = slist[i]
      u = ulist[i]
      if s == 0:
          for k in range(max_digit):
              u1 = u & 1
              if u1 == 1:
                  for j in range(N):
                      amat[i][j][-1 - k] = 1
              u >>= 1
      else:
          for k in range(max_digit):
              u1 = u & 1
              if u1 == 0:
                  for j in range(N):
                      amat[i][j][-1 - k] = 0
              u >>= 1
  
      t = tlist[i]
      v = vlist[i]
      if t == 0:
          for k in range(max_digit):
              v1 = v & 1
              if v1 == 1:
                  for j in range(N):
                      amat[j][i][-1 - k] = 1
              v >>= 1
      else:
          for k in range(max_digit):
              v1 = v & 1
              if v1 == 0:
                  for j in range(N):
                      amat[j][i][-1 - k] = 0
              v >>= 1
  
  for i in range(N):
      for j in range(N):
          u = ulist[i]
          v = vlist[j]
          for k in range(max_digit):
              u1 = u & 1
              v1 = v & 1
              if u1 == v1:
                  amat[i][j][-1 - k] = u1
              u >>= 1
              v >>= 1
  # print(amat)
  
  for i in range(N):
      for j in range(N):
          s = slist[i]
          t = tlist[j]
          u = ulist[i]
          v = vlist[j]
          for k in range(max_digit):
              u1 = u & 1
              v1 = v & 1
              if amat[i][j][-1 - k] == -1:
                  if s == 1 and u1 == 1:
                      if t == 0:  # v1==0
                          amat[i][j][-1 - k] = 0
                      else:
                          amat[i][j][-1 - k] = 1
                  elif t == 1 and v1 == 1:
                      if s == 0:  # u1==0
                          amat[i][j][-1 - k] = 0
                      else:
                          amat[i][j][-1 - k] = 1
  # print(amat)
  
  answer_mat = [[0] * N for _ in range(N)]
  for i in range(N):
      for j in range(N):
          ans = 0
          base = 1
          a = amat[i][j]
          for k in range(max_digit):
              ans += a[-1 - k] * base
              base <<= 1
  
          answer_mat[i][j] = ans
  
  # print(answer_mat)
  for i in range(N):
      print(*answer_mat[i])
  
problem_description: Statement
  
  Given are an integer N and arrays S, T, U, and V, each of length N. Construct
  an N×N matrix a that satisfy the following conditions:
  
    * a_{i,j} is an integer.
    * 0 \leq a_{i,j} \lt 2^{64}.
    * If S_{i} = 0, the bitwise AND of the elements in the i-th row is U_{i}.
    * If S_{i} = 1, the bitwise OR of the elements in the i-th row is U_{i}.
    * If T_{i} = 0, the bitwise AND of the elements in the i-th column is V_{i}.
    * If T_{i} = 1, the bitwise OR of the elements in the i-th column is V_{i}.
  
  However, there may be cases where no matrix satisfies the conditions.
samples: [{"input": "2\n    0 1\n    1 0\n    1 1\n    1 0", "output": "1 1\n    1 0\n    \n\nIn Sample Input 1, we need to find a matrix such that:\n\n  * the bitwise AND of the elements in the 1-st row is 1;\n  * the bitwise OR of the elements in the 2-nd row is 1;\n  * the bitwise OR of the elements in the 1-st column is 1;\n  * the bitwise AND of the elements in the 2-nd column is 0.\n\n* * *"}, {"input": "2\n    1 1\n    1 0\n    15 15\n    15 11", "output": "15 11\n    15 11"}]