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

public class Main {

   Scanner in;
   PrintWriter out;

   void asserT(boolean e) {
      if (!e) {
         throw new Error();
      }
   }

   final String truth = "Truth";
   final String nf = "Not defined";
   final String lie = "Lie";

   class Man {
      int id;
      ArrayList<Man> whoSad = new ArrayList<Main.Man>();
      String res = "Lie";

      Man(int id) {
         this.id = id;
      }
   }

   void solve() {
      int n = in.nextInt();
      int m = in.nextInt();
      Man mans[] = new Man[1 + n];
      Man crimeVote[] = new Man[1 + n];
      Man notCrimeVote[] = new Man[1 + n];
      in.nextLine();
      for (int i = 1; i <= n; i++) {
         mans[i] = new Man(i);
      }
      for (int i = 1; i <= n; i++) {
         crimeVote[i] = new Man(i);
      }
      for (int i = 1; i <= n; i++) {
         notCrimeVote[i] = new Man(i);
      }
      ArrayList<Man> crimed = new ArrayList<Main.Man>();
      ArrayList<Man> protect = new ArrayList<Main.Man>();
      for (int i = 1; i <= n; i++) {
         String line = in.nextLine();
         Man man = mans[i];
         if (line.charAt(0) == '-') {
            int to = Integer.parseInt(line.substring(1));
            notCrimeVote[to].whoSad.add(man);
            protect.add(mans[to]);
         } else {
            int to = Integer.parseInt(line.substring(1));
            crimeVote[to].whoSad.add(man);
            crimed.add(mans[to]);
         }
      }
      if (m==0 || m==n && crimeVote.length>0 ){
       // everybody lies
      }else if (protect.size()>1){
         for (Man cr:protect){
            for (Man w:notCrimeVote[cr.id].whoSad){
               w.res = nf;
            }
         }
      }else if (crimed.size()==1 && m==crimeVote[crimed.get(0).id].whoSad.size()){
         for (Man m1:crimeVote[crimed.get(0).id].whoSad){
            m1.res = truth;
         }
         
      }else if (crimed.size()==1 && m<crimeVote[crimed.get(0).id].whoSad.size()){
         for (Man m1:crimeVote[crimed.get(0).id].whoSad){
            m1.res = nf;
         }
         
      }else if (crimed.size()>1){
         for (int i = 1; i <=n; i++){
            mans[i].res = lie;
         }
         for (Man cr:crimed){
            for (Man w:crimeVote[cr.id].whoSad){
               w.res = nf;
            }
         }
         
      }else{
         for (int j = 1; j < mans.length; j++) {
            mans[j].res = nf;
         }
      }
//      for (int i = 1; i <= n; i++) {
//         if (crimeVote[i].whoSad.size() < m && crimeVote[i].whoSad.size() > 0 || crimeVote[i].whoSad.size() > m) {
//            for (Man m1 : crimeVote[i].whoSad) {
//               m1.res = "Not defined";
//            }
//            for (int j = 1; j < mans.length; j++) {
//               out.println(mans[j].res);
//            }
//            return;
//         } else if (crimeVote[i].whoSad.size() == m && crimeVote[i].whoSad.size() > 0) {
//            for (Man m1 : crimeVote[i].whoSad) {
//               m1.res = "Truth";
//            }
//            for (int j = 1; j < mans.length; j++) {
//               out.println(mans[j].res);
//            }
//            return;
//         }
//      }
      for (int j = 1; j < mans.length; j++) {
         out.println(mans[j].res);
      }
   }

   void run() {

      in = new Scanner(System.in);
      out = new PrintWriter(System.out);

      try {
         solve();
      } finally {
         out.close();
      }
   }

   public static void main(String[] args) {
      Runtime r = Runtime.getRuntime();
      new Main().run();

   }
}