// Name: Patrick Inglesby
// Date: 
// Description: 

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws Exception {
        in.init(System.in);
        PrintWriter out = new PrintWriter(System.out);
        int numSuspects = in.nextInt();
        int numTruths = in.nextInt();
        HashSet<Integer> bigTruthers = new HashSet<>(); 
        char[] plusMinus = new char[numSuspects];
        int[] positions = new int[numSuspects];
        
        for (int i = 0; i < numSuspects; i++) {
            String currentLine = in.next();
            plusMinus[i] = currentLine.charAt(0);
            positions[i] = (int) currentLine.charAt(1) - 48;
        }
        

        if (numTruths > 0) {
            for (int i = 0; i < numSuspects; i++) {
                boolean[] canBeBad = new boolean[numSuspects];
                ArrayList<Integer> truthTellers = new ArrayList<>();
                int liers = 0;
                for (int j = 0; j < numSuspects; j++) {
                    if (plusMinus[j] == '+') {
                        if (positions[j] != i+1) {
                            canBeBad[j] = true;
                            liers++;
                        }
                        else {
                            truthTellers.add(j);
                        }
                    } else {
                        if (positions[j] == i+1) {
                            canBeBad[j] = true;
                            liers++;
                        }
                        else {
                            truthTellers.add(j);
                        }
                    }
                }
                if (numSuspects - liers == numTruths) {
                    for (int j = 0; j < truthTellers.size(); j++) {
                        bigTruthers.add(truthTellers.get(j));
                    }
                }

            }
            for (int i = 0; i < numSuspects; i++) {
                if (bigTruthers.contains(i)) {
                    if (bigTruthers.size() == 1) {
                        out.println("Truth");
                    }
                    else {
                        out.println("Not defined");
                    }
                }
                else {
                    out.println("Lie");
                }
            }
        } else {
            for (int i = 0; i < numSuspects; i++) {
                out.println("Lie");
            }
        }
        out.close();
    } // END Main()

}

class in {

    static BufferedReader reader;
    static StringTokenizer tokenizer;

    static void init(InputStream input) {
        reader = new BufferedReader(new InputStreamReader(input));
        tokenizer = new StringTokenizer("");
    }

    static String next() throws IOException {
        while (!tokenizer.hasMoreTokens()) {
            tokenizer = new StringTokenizer(reader.readLine());
        }
        return tokenizer.nextToken();
    }

    static int nextInt() throws IOException {
        return Integer.parseInt(next());
    }

    static double nextDouble() throws IOException {
        return Double.parseDouble(next());
    }
}
