#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=500*500+10;
int n;
int a[maxn],b[maxn];
ll cnt1,cnt2,cnt;
void merge_sort(int l,int r)
{
if(r-l>0){
int mid=(l+r)/2 ;
int i=l;
int p=l,q=mid+1;
merge_sort(l,mid);
merge_sort(mid+1,r);
while(p<=mid||q<=r){
if(q>r||(p<=mid&&a[p]<=a[q]))
b[i++]=a[p++];
else{
b[i++]=a[q++];
cnt+=mid-p+1;
}
}
for(i=l;i<=r;i++)
a[i]=b[i];
}
}
int main(){
while(cin>>n){
int x,ant=0;
for(int i=1;i<=n*n;i++){
cin>>x;
if(x!=0){
a[++ant]=x;
}
}
merge_sort(1,ant);
cnt1=cnt;
cnt=0;
ant=0;
for(int i=1;i<=n*n;i++){
cin>>x;
if(x!=0){
a[++ant]=x;
}
}
merge_sort(1,ant);
cnt2=cnt;
cnt=0;
if((cnt1%2)==(cnt2%2)){
cout<<"TAK"<<endl;
}
else
cout<<"NIE"<<endl;
}
return 0;
}
两个矩阵不计空格后,如果逆序对奇偶性相同即可达。