import java.io.*;

import java.awt.geom.Point2D;
import java.text.*;
import java.math.*;
import java.util.*;

public class Main implements Runnable {

	final String filename = "";

	public void solve() throws Exception {
		int n = iread(), m = iread();
		int[] v = new int[2 * n + 1];
		int[] k1 = new int[2 * n + 1], k2 = new int[2 * n + 1];
		int s = 0;
		for (int i = 1; i <= n; i++) {
			String ss = readword();
			v[i] = Integer.parseInt(ss.substring(1));
			if (ss.charAt(0) == '-')
				v[i] = -v[i];
			else if (ss.charAt(0) != '+') {
				System.out.println("WHAT THE FUCK???");
			}
			if (v[i] < -n || v[i] > n || v[i] == 0) {
				while (true) {

				}
			}
			if (v[i] > 0) {
				k1[v[i]]++;
			} else {
				k2[-v[i]]++;
				s++;
			}
		}
		boolean[] can = new boolean[2 * n + 1];
		int killer = -1;
		int kc = 0;
		for (int i = 1; i <= n; i++) {
			int m1 = k1[i] + (s - k2[i]);
			can[i] = m == m1;
			if (can[i]) {
				killer = i;
				kc++;
			}
		}
		for (int i = 1; i <= n; i++) {
			if (v[i] > 0) {
				if (can[v[i]]) {
					if (kc == 1) {
						out.write("Truth\n");
					} else
						out.write("Not defined\n");
				} else {
					out.write("Lie\n");
				}
			} else {
				if (can[-v[i]]) {
					if (kc == 1) {
						out.write("Lie\n");
					} else
						out.write("Not defined\n");
				} else
					out.write("Truth\n");
			}
		}
	}

	public void run() {
		try {
			in = new BufferedReader(new InputStreamReader(System.in));
			out = new BufferedWriter(new OutputStreamWriter(System.out));
			// in = new BufferedReader(new FileReader(filename+".in"));
			// out = new BufferedWriter(new FileWriter(filename+".out"));
			solve();
			out.flush();
		} catch (Exception e) {
			e.printStackTrace();
			System.exit(1);
		}
	}

	public int iread() throws Exception {
		return Integer.parseInt(readword());
	}

	public double dread() throws Exception {
		return Double.parseDouble(readword());
	}

	public long lread() throws Exception {
		return Long.parseLong(readword());
	}

	BufferedReader in;

	BufferedWriter out;

	public String readword() throws IOException {
		StringBuilder b = new StringBuilder();
		int c;
		c = in.read();
		while (c >= 0 && c <= ' ')
			c = in.read();
		if (c < 0)
			return "";
		while (c > ' ') {
			b.append((char) c);
			c = in.read();
		}
		return b.toString();
	}

	public static void main(String[] args) {
		try {
			Locale.setDefault(Locale.US);
		} catch (Exception e) {

		}
		new Thread(new Main()).start();
		// new Thread(null, new Main(), "1", 1 << 25).start();
	}
}