import sys input=sys.stdin.buffer.readline T=int(input()) for _case in range(T): N=int(input()) A=[]; sm=0 for _ in range(N): r=[int(x)%N for x in input().split()] A+=r; sm=(sm+sum(r))%N if sm: print(-1) continue M=N*N o=[] if N%2==0: o+=range(N) for i in range(1,N): if i&1: o+=range(i*N+N-1,i*N,-1) else: o+=range(i*N+1,i*N+N) o+=range(M-N,0,-N) else: o+=range(N) for j in range(N-1,1,-1): if (N-1-j)&1: o+=range((N-1)*N+j,j,-N) else: o+=range(N+j,M+j,N) for i in range(N-1,0,-1): if (N-1-i)&1: o+=[i*N,i*N+1] else: o+=[i*N+1,i*N] cnt=[0]*N s=0 for t,v in enumerate(o): if not (N&1 and t==1): cnt[s]+=1 s=(s+A[v])%N r=max(range(N),key=cnt.__getitem__) cut=[] s=0 for t,v in enumerate(o): if not (N&1 and t==1) and s==r: cut.append(t) if len(cut)==N: break s=(s+A[v])%N ans=[0]*M for k in range(N): l=cut[k] rr=cut[(k+1)%N]+(M if k==N-1 else 0) for t in range(l,rr): ans[o[t%M]]=k+1 w=sys.stdout.write for i in range(N): w(" ".join(map(str,ans[i*N:(i+1)*N]))+"\n")