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
51
52
53
54
55
56
#include <bits/stdc++.h>

using namespace std;

int n;
string x, y;

void read() {
    cin >> n >> x >> y;
}

bool solve() {
    map<char, int> fstEven, fstOdd, sndEven, sndOdd;

    char c;
    for(int i = 0; i < n; ++i) {
        c = x[i];
        if(i % 2 == 0) {
            if(fstEven.find(c) != fstEven.end())
                fstEven[c]++;
            else
                fstEven.insert(pair<char,int>(c, 1));
        }
        else {
            if(fstOdd.find(c) != fstOdd.end())
                fstOdd[c]++;
            else
                fstOdd.insert(pair<char,int>(c, 1));
        }
        c = y[i];
        if(i % 2 == 0) {
            if(sndEven.find(c) != sndEven.end())
                sndEven[c]++;
            else
                sndEven.insert(pair<char,int>(c, 1));
        }
        else {
            if(sndOdd.find(c) != sndOdd.end())
                sndOdd[c]++;
            else
                sndOdd.insert(pair<char,int>(c, 1));
        }
    }

    return (fstEven == sndEven) && (fstOdd == sndOdd);
}

int main()
{
    cin.tie(0);
    cout.tie(0);
    ios_base::sync_with_stdio(0);
    read();
    cout << (solve() ? "TAK" : "NIE") << endl;
    return 0;
}