import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;
import java.util.StringTokenizer;

public class B110D1 {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(in.readLine(), " ");
        int n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
        int[] c = new int[n + 1];
        int[] dc = new int[n + 1];
        int[] t = new int[n + 1];
        int crim = 0;
        int notcrim = 0;
        for (int i = 1; i <= n; i++) {
            String s = in.readLine();
            if (s.charAt(0) == '+') {
                int tar = Integer.parseInt(s.substring(1, s.length()));
                c[tar]++;
                t[i] = tar;
                crim++;
            } else {
                int tar = Integer.parseInt(s.substring(1, s.length()));
                dc[tar]++;
                t[i] = -tar;
                notcrim++;
            }
        }
        boolean[] isCrim = new boolean[n + 1];
        int criminals = 0;
        for (int i = 1; i < isCrim.length; i++) {
            int truth = c[i] + (notcrim - dc[i]);
            if (truth == m) {
                {
                    isCrim[i] = true;
                    criminals++;
                }
            }
        }
        String s = (criminals > 1) ? "Not defined" : "Truth";
        for (int i = 1; i < t.length; i++) {
            if (t[i] > 0) {
                if (isCrim[t[i]])
                    System.out.println(s);
                else
                    System.out.println("Lie");
            } else {
                if (!isCrim[-t[i]])
                    System.out.println("Truth");
                else if (criminals > 1)
                    System.out.println(s);
                else
                    System.out.println("Lie");
            }
        }
    }
}
