#include <bits/stdc++.h>
using namespace std;
const int N = 5e3 + 5, inf = 1e9;
int d[N][2], q[N * 2][2], h, t, n, vis[N];
vector <int> adj[N];
void bfs(int s) {
for (int i = 1; i <= n; i++)d[i][0] = d[i][1] = inf;
h = t = 0;
q[t][0] = s, q[t++][1] = 0;
d[s][0] = 0;
while (h < t) {
int u = q[h][0], p = q[h++][1];
for (int v : adj[u]) {
int np = 1 - p;
if (d[v][np] == inf) {
d[v][np] = d[u][p] + 1;
q[t][0] = v;
q[t++][1] = np;
}
}
}
}
int main() {
int m, k, u, v, s, t, dd;
cin >> n >> m >> k;
for (int i = 1, u, v; i <= m; i++) {
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
while (k--) {
cin >> s >> t >> dd;
if (!vis[s])
bfs(s);
bool pos = 0;
if (s == t)
pos = adj[s].empty() ? !dd : dd % 2 ? d[t][1] <= dd : d[t][0] <= dd;
else
pos = d[t][0] == inf && d[t][1] == inf ? 0 : dd % 2 ? d[t][1] <= dd : d[t][0] <= dd;
cout << (pos ? "TAK\n" : "NIE\n");
}
return 0;
}