#include<bits/stdc++.h>
#define vi vector<int>
#define vii vector<pair<int,int>>
#define vvi vector<vector<int>>
#define ll long long
#define pb push_back
#define pii pair<int,int>
#define mp make_pair
#define F first
#define S second
#define INF 1000000009

using namespace std;

#define fastio ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);

int mod(int a,int n)
{
	return ((a%n)+n)%n;
}

int gcd(int a,int b)
{
	if(a==0 || b==0)
	{
		return a+b;
	}
	return gcd(b,a%b);
}



void solve(vi a[],int l,int r,int m,int &ans)
{
	if(l>r || m>ans)
	{
		return;
	}
	int i;
	for(i=l;i<=(l+r)/2;i++)
	{
		a[m].pb(i);
	}
	solve(a,l,(l+r)/2,m+1,ans);
	solve(a,(l+r)/2+1,r,m+1,ans);
}

int main()
{
	fastio
	int n,m,i,c=0,cul;
	cin>>n>>m;
	int a[n+1]={0};
	int pos[n+1]={0};
	int neg[n+1]={0};
	int ne=0;
	int po=0;
	for(i=1;i<=n;i++)
	{
		cin>>a[i];
		if(a[i]>0)
		{
			pos[a[i]]++;
			po++;
		}
		else
		{
			pos[-a[i]]++;
			ne++;
		}
	}
	if(n==m)
	{
		for(i=1;i<=n;i++)
		{
			cout<<"Truth\n";
		}
		return 0;
	}
	else
	{
		int val[n+1]={0};
		c=0;
		for(i=1;i<=n;i++)
		{
			if(pos[i]+ne-neg[i]==m)
			{
				c++;
				if(c==1)
				{
					cul=i;
				}
				else
				{
					cul=-1;
				}
				val[i]=1;
			}
		}
		if(c==1)
		{
			for(i=1;i<=n;i++)
			{
				if(a[i]>0 && val[a[i]]==1)
				{
					cout<<"Truth\n";
				}
				else if(a[i]>0 && val[a[i]]!=1)
				{
					cout<<"Lie\n";
				}
				else if(a[i]<0 && val[-a[i]]==1)
				{
					cout<<"Lie\n";
				}
				else
				{
					cout<<"Truth\n";
				}
			}
		}
		else
		{
			for(i=1;i<=n;i++)
			{
				if(a[i]>0 && val[a[i]]==1)
				{
					cout<<"Not defined\n";
				}
				else if(a[i]>0 && val[a[i]]!=1)
				{
					cout<<"Lie\n";
				}
				else if(a[i]<0 && val[-a[i]]==1)
				{
					cout<<"Lie\n";
				}
				else
				{
					cout<<"Not defined\n";
				}
			}
		}
	}
}
