from collections import Counter def solve(): N = int(input()) R = list(map(int,input().split())) C = list(map(int,input().split())) pR = [None]*(N+1) for i in range(N): pR[R[i]] = i # print(pR) grid = [[R[i]]*N for i in range(N)] for j in range(N): # print(C[(j+1)%N]) rowidx = (pR[C[j]] + 1) % N grid[rowidx][j] = C[j] # valid_check for i in range(N): if not R[i] == Counter(grid[i]).most_common()[0][0]: print(-1) return for j in range(N): ncol = [] for i in range(N): ncol.append(grid[i][j]) if not C[j] == Counter(ncol).most_common()[0][0]: print(-1) return # print for i in range(N): for j in range(N): print(grid[i][j],end=" ") print() T = int(input()) for _ in range(T): solve()