#include <bits/stdc++.h>
using namespace std;
int n, m;
char c, g;
set<int> nl, nt;
set<int>::iterator it;
vector<int> u[100010], nu[100010];
int minusy[100010], plusy[100010];
int pluss, minuss;
vector<int> lll, ttt;
int lala[100010];
char aaaa[10000];
int main() {
  scanf("%d %d\n", &n, &m);
  for (int i = 0; i <= 100000; i++) {
    u[i].clear();
    nu[i].clear();
  }
  for (int i = 1; i <= n; i++) {
    scanf("%s", aaaa);
    c = aaaa[0];
    sscanf(aaaa + 1, "%d", &g);
    if (aaaa[0] == '-') {
      minuss++;
      nu[g].push_back(i);
      minusy[i] = g;
    } else {
      pluss++;
      u[g].push_back(i);
      plusy[i] = g;
    }
    nl.insert(i);
    nt.insert(i);
  }
  for (int i = 1; i <= n; i++) {
    if ((((int)(u[i]).size()) + (minuss - ((int)(nu[i]).size()))) == m) {
      lll.clear();
      ttt.clear();
      for (it = nl.begin(); it != nl.end(); it++) {
        if (minusy[*it] == i || (plusy[*it] != 0 && plusy[*it] != i)) {
          lala[*it] |= 1;
          lll.push_back(*it);
        }
      }
      for (int j = 0; j < ((int)(lll).size()); j++) {
        nl.erase(lll[j]);
      }
      for (it = nt.begin(); it != nt.end(); it++) {
        if ((minusy[*it] != 0 && minusy[*it] != i) || plusy[*it] == i) {
          lala[*it] |= 2;
          ttt.push_back(*it);
        }
      }
      for (int j = 0; j < ((int)(ttt).size()); j++) {
        nt.erase(ttt[j]);
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    if (lala[i] == 1)
      printf("Lie\n");
    else if (lala[i] == 2)
      printf("Truth\n");
    else if (lala[i] == 3)
      printf("Not defined\n");
  }
  return 0;
}
