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

import sun.security.provider.certpath.OCSP.RevocationStatus;

public class D
{
	String line;
	StringTokenizer inputParser;
	BufferedReader is;
	FileInputStream fstream;
	DataInputStream in;
	
	void openInput(String file)
	{

		if(file==null)is = new BufferedReader(new InputStreamReader(System.in));//stdin
		else
		{
			try{
		
				
			fstream = new FileInputStream(file);
			in = new DataInputStream(fstream);
			is = new BufferedReader(new InputStreamReader(in));
			}catch(Exception e)
			{
				System.err.println(e);
			}
		}

	}
	
	void readNextLine()
	{
		try {
			line = is.readLine();
			inputParser = new StringTokenizer(line, " ");
			//System.err.println("Input: " + line);
		} catch (IOException e) {
			System.err.println("Unexpected IO ERROR: " + e);
		}	
		
	}
	
	int NextInt()
	{
		String n = inputParser.nextToken();
		int val = Integer.parseInt(n);
		
		//System.out.println("I read this number: " + val);
		return val;
	}
	
	String NextString()
	{
		String n = inputParser.nextToken();
		return n;
	}
	
	void closeInput()
	{
		try {
			is.close();
		} catch (IOException e) {
			System.err.println("Unexpected IO ERROR: " + e);
		}
			
	}
	
	
	public static void main(String [] argv)
	{
		String filePath=null;
		if(argv.length>0)filePath=argv[0];
		new D(filePath);
	}

	public D(String inputFile)
	{
		openInput(inputFile);
		
		

		readNextLine();
		int n=NextInt();
		int m=NextInt();
		
		boolean []p = new boolean[n];
		int []t = new int[n];
		
		Set <Integer> a = new TreeSet<Integer>();
		
		for(int i=0; i<n; i++)
		{
			readNextLine();
			p[i]=(line.charAt(0)=='+');
			t[i]=Integer.parseInt(line.substring(1))-1;
		}
		for(int i=0; i<n; i++)
		{
			int x=0;
			for(int j=0; j<n; j++)
			{
				if(ok(p[j], t[j], i))x++;
			}
			if(x==m)
			{
				a.add(i);
			}
		}
		
		if(a.size()==1)
		{
			for(int A:a)
			{
				for(int j=0; j<n; j++)
				{
					if(ok(p[j], t[j], A))System.out.println("Truth");
					else System.out.println("Lie");
				}
			}
		}
		else
		{
			for(int j=0; j<n; j++)
			{
				if(p[j])
				{
					if(a.contains(t[j]))System.out.println("Not defined");
					else System.out.println("Lie");
				}
				else
				{
					if(a.contains(t[j]))System.out.println("Not defined");
					else System.out.println("Truth");
				}
			}
		}
		
		
		
	
		System.out.println(a.size());
        closeInput();		

	}

	private boolean ok(boolean p, int t, int i) {
		if(p)
		{
			return t==i;
		}
		else
		{
			return t!=i;
		}
	}
	
	


	
}

