// rc.cpp
//

#include <math.h>
#include <string.h>

#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <list>
#include <algorithm>
#include <numeric>

using namespace std;

typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned __int64 uint64;

#define PI 3.1415926535897932384626433832795
#define EPS 1E-8

int s[100000];
uint w[100000],
	 t[100000],
	 l[100000];

int main(int argc, char* argv[])
{
	uint n, m;
	cin >> n >> m;

	uint o = 0;
	for (uint i = 0; i < n; ++i)
	{
		cin >> s[i];
		if (s[i] > 0)
			++t[s[i] - 1];
		else
		{
			++l[-s[i] - 1];
			++o;
		}
	}

	if (0 == m && 0 == o)
	{
		for (uint i = 0; i < n; ++i)
			w[i] = 2;
	}
	else if (1 == m && 0 == o)
	{
		for (uint i = 0; i < n; ++i)
			w[i] = 3;
	}
	else
	{
		for (uint i = 0; i < n; ++i)
			t[i] += (o - l[i]);

		for (uint i = 1; i <= n; ++i)
		{
			if (t[i - 1] == m)
			{
				for (uint j = 0; j < n; ++j)
				{
					if (w[j] != 3)
					{
						if (s[j] < 0 && -s[j] != i || s[j] > 0 && s[j] == i)
						{
							if (w[j])
							{
								if (w[j] != 1)
									w[j] = 3;
							}
							else
								w[j] = 1;
						}
						else
						{
							if (w[j])
							{
								if (w[j] != 2)
									w[j] = 3;
							}
							else
								w[j] = 2;
						}
					}
				}
			}
		}
	}

	for (uint i = 0; i < n; ++i)
	{
		if (1 == w[i])
			cout << "Truth" << endl;
		else if (2 == w[i])
			cout << "Lie" << endl;
		else
			cout << "Not defined" << endl;
	}

	return 0;
}

