import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;



public class Main {
    static int inf = (int)(2e9+1e8);
    static double eps = 1e-9;
    static double PI = Math.acos(-1.0);
    static int N = 100000 + 10;
    int[] a = new int[N], b = new int[N], x = new int[N];
    int n, m, tot;
    int[][] typ = new int[N][2];
//    class node implements Comparable<node> {
//    	int idx, cnt;
//    	node(int ni, int nc) {
//    		idx = ni;
//    		cnt = nc;
//    	}
//		@Override
//		public int compareTo(node o) {
//			// TODO Auto-generated method stub
//			if(cnt != o.cnt) return ((Integer)(cnt)).compareTo(o.cnt);
//			else return ((Integer)(idx)).compareTo(o.idx);
//		}
//    }
    void solve() {
    	int mur = 0, g = -1;
        for (int i = 1; i <= n; ++i) {
            int get = a[i] + tot - b[i];
            if (get == n - m) {
                x[i] = 1;
                ++mur;
                g = i;
            } else  x[i] = 0;
        }
        if (mur != 1) g = -1;

        for (int i = 1; i <= n; ++i) {
            if (typ[i][0] == 1) {
                if (g != -1) {
                    if (typ[i][1] == g) out.println("Truth");
                    else out.println("Lie");
                } else {
                    if (x[typ[i][1]] == 1) out.println("Not defined");
                    else out.println("Lie");
                }
            } else {
                if (x[typ[i][1]] <= 0) out.println("Truth");
                else if (x[typ[i][1]] == 1 && g != -1) out.println("Lie");
                else if (g != -1 && typ[i][1] != g) out.println("Truth");
                else if (g != -1 && typ[i][1] == g) out.println("Lie");
                else out.println("Not defined");
            }
        }
    }
    void input() {
    	int v;
        char ch;
        n = cin.nextInt();
        m = cin.nextInt();
        for (int i = 1; i <= n; ++i) {
            String s = cin.next();
            ch = s.charAt(0);
            int num = 0;
            for(int j = 1; j < s.length(); j ++) {
            	num = num*10 + s.charAt(j)-'0';
            }
            typ[i][1] = num;
            
            if (ch == '-') {
                typ[i][0] = -1;
                ++a[typ[i][1]];
            } else {
                ++tot;
                typ[i][0] = 1;
                ++b[typ[i][1]];
            }
        }
    }
    void pre() {
    	Arrays.fill(x, -1);
    }
    void work() {
    	pre();
        input();
        solve();
        out.close();
    }
    Main() {
        out = new PrintWriter(System.out);
        cin = new Scanner(System.in);
    }

    public static void main(String[] args) {
        Main wo = new Main();
        wo.work();
    }
    DecimalFormat df=new DecimalFormat("0.000000");
    public Scanner cin;
    public PrintWriter out;
}