WA on 33
#include<bits/stdc++.h>
#define FIO(file) freopen(file".in","r",stdin),freopen(file".out","w",stdout)
using namespace std;
const int N=1005;
const int inf=1e9+7;
static char buf[1000000],*p1=buf,*p2=buf;
#define getchar() p1==p2&&(p2=(p1=buf)+fread(buf,1,1000000,stdin),p1==p2)?EOF:*p1++
inline int wrd(){int x=0,f=1;char c=getchar();while(c<'0' || c>'9'){if(c=='-') f=-1;c=getchar();}while(c>='0' && c<='9') {x=(x<<3)+(x<<1)+c-48;c=getchar();}return x*f;}
inline void write(int x){static char buf[20];static int len=-1;if(x<0)putchar('-'),x=-x;do buf[++len]=x%10,x/=10;while(x);while(len>=0)putchar(buf[len--]+48);}
int n,a[N][N],fa[N],w[N];
int fd(int x){
if(x==fa[x]) return x;
int t=fd(fa[x]);
w[x]^=w[fa[x]];
return fa[x]=t;
}
void uty(int x,int y,int _w){
int fx=fd(x),fy=fd(y);
fa[fx]=fy,w[fx]=w[x]^w[y]^_w;
}
void solve(){
n=wrd();
for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) a[i][j]=wrd();
for(int i=1;i<=n;++i) fa[i]=i,w[i]=0;
for(int i=1;i<=n;++i){
for(int j=i+1;j<=n;++j){
if(a[i][j]==a[j][i]) continue;
int fi=fd(i),fj=fd(j),o=a[i][j]>a[j][i];
if(fi==fj){
if(w[i]^w[j]) swap(a[i][j],a[j][i]);
}else{
if(o) uty(i,j,1),swap(a[i][j],a[j][i]);
else uty(i,j,0);
}
}
}
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j) write(a[i][j]),putchar(' ');
puts("");
}
}
signed main(){
// FIO("swap");
int T=wrd();
while(T--) solve();
return 0;
}