#include<bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define ll long long
#define pii pair<int,int>
#define pill pair<int,ll>
#define pll pair<ll,ll>
#define pb push_back
#define fi first
#define se second
#define ff fi.fi
#define fs fi.se
#define sf se.fi
#define ss se.se
#define MASK(x) (((1)<<(x))-1)
#define getbit(x,k) (((x)>>(k))&1)
using namespace std;
const int maxn=1e5+50,mod=1e9+7;
const ll inf=0x3f3f3f3f3f3f3f3f;
int n,m;
vector<pii>eg[maxn],teg[maxn];
vector<pair<pii,int>>alle;
ll d1[maxn],d2[maxn],w1[maxn],w2[maxn];
void dijkstra(ll d[], ll w[], vector<pii>e[], int st)
{
memset(d,0x3f,(n+10)*sizeof(ll));d[st]=0;
priority_queue<pll,vector<pll>,greater<pll>>pQ;
pQ.push({d[st],st});
w[st]=1;
while(pQ.size())
{
pll u=pQ.top();pQ.pop();
if(u.fi!=d[u.se]) continue;
for(pii v:e[u.se])
{
if(u.fi+v.se<d[v.fi])
{
d[v.fi]=u.fi+v.se;
w[v.fi]=w[u.se];
pQ.push({d[v.fi],v.fi});
}
else if(u.fi+v.se==d[v.fi])
w[v.fi]=(w[v.fi]+w[u.se])%mod;
}
}
}
int main()
{
fastio
freopen("tandeptrai.inp","r",stdin);
freopen("tandeptrai.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int u,v,c;cin>>u>>v>>c;
eg[u].pb({v,c});teg[v].pb({u,c});
alle.pb({{u,v},c});
}
dijkstra(d1,w1,eg,1);dijkstra(d2,w2,teg,2);
for(auto x:alle)
{
int u=x.ff,v=x.fs,c=x.se;
ll nd=d1[v]+d2[u]+c;
if(nd<d1[2]) cout<<"TAN\n";
else if(nd==d1[2]) cout<<"DEP\n";
else
{
if(d1[u]+d2[v]+c==d1[2] && (w1[u]*w2[v])%mod==w1[2])
cout<<"TRAI\n";
else cout<<"DEP\n";
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCiNkZWZpbmUgZmFzdGlvIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHBpbGwgcGFpcjxpbnQsbGw+CiNkZWZpbmUgcGxsIHBhaXI8bGwsbGw+CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBmZiBmaS5maQojZGVmaW5lIGZzIGZpLnNlCiNkZWZpbmUgc2Ygc2UuZmkKI2RlZmluZSBzcyBzZS5zZQojZGVmaW5lIE1BU0soeCkgKCgoMSk8PCh4KSktMSkKI2RlZmluZSBnZXRiaXQoeCxrKSAoKCh4KT4+KGspKSYxKQoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBtYXhuPTFlNSs1MCxtb2Q9MWU5Kzc7CmNvbnN0IGxsIGluZj0weDNmM2YzZjNmM2YzZjNmM2Y7CgppbnQgbixtOwp2ZWN0b3I8cGlpPmVnW21heG5dLHRlZ1ttYXhuXTsKdmVjdG9yPHBhaXI8cGlpLGludD4+YWxsZTsKbGwgZDFbbWF4bl0sZDJbbWF4bl0sdzFbbWF4bl0sdzJbbWF4bl07Cgp2b2lkIGRpamtzdHJhKGxsIGRbXSwgbGwgd1tdLCB2ZWN0b3I8cGlpPmVbXSwgaW50IHN0KQp7CiAgICBtZW1zZXQoZCwweDNmLChuKzEwKSpzaXplb2YobGwpKTtkW3N0XT0wOwogICAgcHJpb3JpdHlfcXVldWU8cGxsLHZlY3RvcjxwbGw+LGdyZWF0ZXI8cGxsPj5wUTsKICAgIHBRLnB1c2goe2Rbc3RdLHN0fSk7CiAgICB3W3N0XT0xOwogICAgd2hpbGUocFEuc2l6ZSgpKQogICAgewogICAgICAgIHBsbCB1PXBRLnRvcCgpO3BRLnBvcCgpOwogICAgICAgIGlmKHUuZmkhPWRbdS5zZV0pIGNvbnRpbnVlOwogICAgICAgIGZvcihwaWkgdjplW3Uuc2VdKQogICAgICAgIHsKICAgICAgICAgICAgaWYodS5maSt2LnNlPGRbdi5maV0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRbdi5maV09dS5maSt2LnNlOwogICAgICAgICAgICAgICAgd1t2LmZpXT13W3Uuc2VdOwogICAgICAgICAgICAgICAgcFEucHVzaCh7ZFt2LmZpXSx2LmZpfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZih1LmZpK3Yuc2U9PWRbdi5maV0pCiAgICAgICAgICAgICAgICAgICAgd1t2LmZpXT0od1t2LmZpXSt3W3Uuc2VdKSVtb2Q7CiAgICAgICAgfQogICAgfQp9CmludCBtYWluKCkKewogICAgZmFzdGlvCiAgICBmcmVvcGVuKCJ0YW5kZXB0cmFpLmlucCIsInIiLHN0ZGluKTsKICAgIGZyZW9wZW4oInRhbmRlcHRyYWkub3V0IiwidyIsc3Rkb3V0KTsKICAgIGNpbj4+bj4+bTsKICAgIGZvcihpbnQgaT0xO2k8PW07aSsrKQogICAgewogICAgICAgIGludCB1LHYsYztjaW4+PnU+PnY+PmM7CiAgICAgICAgZWdbdV0ucGIoe3YsY30pO3RlZ1t2XS5wYih7dSxjfSk7CiAgICAgICAgYWxsZS5wYih7e3Usdn0sY30pOwogICAgfQogICAgZGlqa3N0cmEoZDEsdzEsZWcsMSk7ZGlqa3N0cmEoZDIsdzIsdGVnLDIpOwogICAgZm9yKGF1dG8geDphbGxlKQogICAgewogICAgICAgIGludCB1PXguZmYsdj14LmZzLGM9eC5zZTsKICAgICAgICBsbCBuZD1kMVt2XStkMlt1XStjOwogICAgICAgIGlmKG5kPGQxWzJdKSBjb3V0PDwiVEFOXG4iOwogICAgICAgIGVsc2UgaWYobmQ9PWQxWzJdKSBjb3V0PDwiREVQXG4iOwogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGlmKGQxW3VdK2QyW3ZdK2M9PWQxWzJdICYmICh3MVt1XSp3Mlt2XSklbW9kPT13MVsyXSkKICAgICAgICAgICAgICAgIGNvdXQ8PCJUUkFJXG4iOwogICAgICAgICAgICBlbHNlIGNvdXQ8PCJERVBcbiI7CiAgICAgICAgfQogICAgfQp9Cg==