#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n,m,k;
vector<int> G[5005];
struct questions{
int id,to;
ll d;
};
vector<questions> qu[5005];
int dis[5005][2];
bool flag[1000005],vis[5005];
void spfa(int s)
{
memset(dis,0x3f3f3f3f,sizeof dis);
memset(vis,0,sizeof vis);
queue<int> q;
q.push(s);
vis[s]=1;
dis[s][0]=0;
while(!q.empty())
{
int u=q.front();
q.pop();
vis[u]=0;
for(int v:G[u])
{
bool is=false;
if(dis[u][1]+1<dis[v][0])
{
dis[v][0]=dis[u][1]+1;
is=true;
}
if(dis[u][0]+1<dis[v][1])
{
dis[v][1]=dis[u][0]+1;
is=true;
}
if(is&&!vis[v])
{
q.push(v);
vis[v]=1;
}
}
}
}
int main()
{
cin>>n>>m>>k;
while(m--)
{
int a,b;
cin>>a>>b;
G[a].push_back(b);
G[b].push_back(a);
}
for(int i=1;i<=k;i++)
{
int s,t;
ll d;
cin>>s>>t>>d;
qu[s].push_back({i,t,d});
}
for(int i=1;i<=n;i++)
{
if(!qu[i].empty()||!G[i].empty())
{
spfa(i);
for(auto &q:qu[i])
{
int cnt=q.d%2;
flag[q.id]=(dis[q.to][cnt]<=q.d);
}
}
}
for(int i=1;i<=k;i++)
{
if(flag[i])
{
cout<<"TAK"<<"\n";
}else{
cout<<"NIE"<<"\n";
}
}
return 0;
}