import sys it = iter(map(int, sys.stdin.buffer.read().split())) out = [] for _ in range(next(it)): n = next(it) rows = [next(it) for _ in range(n)] cols = [next(it) for _ in range(n)] if n == 1: out.append("1") continue if n == 2: out.append("-1") continue pos = [0] * (n + 1) for i, x in enumerate(rows): pos[x] = i forbidden = [pos[x] for x in cols] chosen = [0] * n if all(x == cols[0] for x in cols): if n < 5: out.append("-1") continue other = [i for i in range(n) if i != forbidden[0]] chosen = [other[j % (n - 1)] for j in range(n)] else: unused = [True] * n for j in range(n - 1): for i in range(n): if unused[i] and i != forbidden[j]: chosen[j] = i unused[i] = False break last = unused.index(True) if last != forbidden[-1]: chosen[-1] = last else: j = 0 while forbidden[j] == last: j += 1 chosen[-1], chosen[j] = chosen[j], last answer = [[rows[i]] * n for i in range(n)] for j in range(n): answer[chosen[j]][j] = cols[j] out.extend(" ".join(map(str, row)) for row in answer) print("\n".join(out))