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
#include<iostream>
using namespace std;

int main()
{
	long long constexpr BASE1 = 31, BASE2 = 97;
	long long constexpr MOD = 1e9 + 7;
	int heh;
	cin >> heh;
	long long hash1 = 0;
	long long rhash1 = 0;
	long long hash2 = 0;
	long long rhash2 = 0;
	long long power1 = 1;
	long long power2 = 1;
	char in;
	while (cin >> in)
	{
		hash1 *= BASE1;
		hash2 *= BASE2;
		long long pom1 = in + 1;
		long long pom2 = in + 1;
		pom1 *= power1;
		pom2 *= power2;
		pom1 %= MOD;
		pom2 %= MOD;
		hash1 += in + 1;
		hash2 += in + 1;
		hash1 %= MOD;
		hash2 %= MOD;
		rhash1 += pom1;
		rhash2 += pom2;
		rhash1 %= MOD;
		rhash2 %= MOD;
		power1 *= BASE1;
		power2 *= BASE2;
		power1 %= MOD;
		power2 %= MOD;
	}
	if (hash1 != rhash1 or hash2 != rhash2)
	{
		cout << "NIE";
		return 0;
	}
	cout << "TAK";
	return 0;
}