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
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
#include <cstdio>


bool is_letter(const char c)
{
    return ((c >= 'a') && (c <= 'z'));
}


int m[128];


void init_m()
{
    m['a'] = 'h';
    m['b'] = 'o';
    m['c'] = 'x';
    m['d'] = 'c';
    m['e'] = 's';
    m['f'] = 'n';
    m['g'] = 'g';
    m['h'] = 'v';
    m['i'] = 'k';
    m['j'] = 'a';
    m['k'] = 'y';
    m['l'] = 'p';
    m['m'] = 'i';
    m['n'] = 'u';
    m['o'] = 'm';
    m['p'] = 'r';
    m['q'] = 'b';
    m['r'] = 'j';
    m['s'] = 'z';
    m['t'] = 'e';
    m['u'] = 'w';
    m['v'] = 'l';
    m['w'] = 't';
    m['x'] = 'd';
    m['y'] = 'q';
    m['z'] = 'f';
}


int main()
{
    init_m();

    int n;
    scanf("%d", &n);

    int c = getchar();
    while(!is_letter(c))
        c = getchar();

    unsigned long long left_to_right_hash_7 = 0LLU;
    unsigned long long right_to_left_hash_7 = 0LLU;

    unsigned long long left_to_right_hash_17 = 0LLU;
    unsigned long long right_to_left_hash_17 = 0LLU;

    unsigned long long left_to_right_hash_29 = 0LLU;
    unsigned long long right_to_left_hash_29 = 0LLU;

    unsigned long long k_7 = 0LLU;
    unsigned long long kk_7 = 1LLU;

    unsigned long long k_17 = 0LLU;
    unsigned long long kk_17 = 1LLU;

    unsigned long long k_29 = 0LLU;
    unsigned long long kk_29 = 1LLU;

    while(is_letter(c))
    {
        c = m[c];

        left_to_right_hash_7 = 7LLU * left_to_right_hash_7 + c;
        right_to_left_hash_7 = right_to_left_hash_7 + kk_7 * c;

        left_to_right_hash_17 = 17LLU * left_to_right_hash_17 + c;
        right_to_left_hash_17 = right_to_left_hash_17 + kk_17 * c;

        left_to_right_hash_29 = 29LLU * left_to_right_hash_29 + c;
        right_to_left_hash_29 = right_to_left_hash_29 + kk_29 * c;

        ++k_7;
        kk_7 *= 7LLU;

        ++k_17;
        kk_17 *= 17LLU;

        ++k_29;
        kk_29 *= 29LLU;

        c = getchar();
    }

    if((left_to_right_hash_7 == right_to_left_hash_7) &&
            (left_to_right_hash_17 == right_to_left_hash_17) &&
            (left_to_right_hash_29 == right_to_left_hash_29))
    {
        printf("TAK\n");
    }
    else
    {
        printf("NIE\n");
    }
}