1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
using namespace std;

string a;

void obroc(int p, int k){
    int d=(k-p)/2;
    char b;
    for(int i=0;i<d;i++){
        b=a[p+i];
        a[p+i]=a[k-i];
        a[k-i]=b;
    }
}

bool czy(string b){
    int x;
    char d;
    for(int i=0;i<b.size();i++){
        if(a[i]!=b[i]){
            d=b[i];
            if(a.find(d,i)==string::npos){
                return 0;
            }
            x=a.find(d,i);
            while((x-i)%2!=0 && a.find(d,x+1)!=string::npos){
                x=a.find(d,x+1);
            }
            if(a.find(d,x+1)==string::npos && (x-i)%2!=0){
                return 0;
            } else if((x-i)%2==0){
                obroc(i,x);
            } else {
                return 0;
            }
        }
    }
    return 1;
}

int main(){
    int rozmiar;
    string b;
    cin>>rozmiar>>a>>b;
    if(czy(b)){
        cout<<"TAK";
    } else {
        cout<<"NIE";
    }
}