#include <bits/stdc++.h>
const int N = 100000 + 10;
int tot = 0;
int a[N], b[N], x[N];
int ans[N], n, m;
int typ[N][2];
int main() {
  memset(ans, -1, sizeof ans);
  memset(x, -1, sizeof x);
  int v;
  char ch;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; ++i) {
    getchar();
    scanf("%c%d", &ch, &typ[i][1]);
    if (ch == '-') {
      typ[i][0] = -1;
      ++a[typ[i][1]];
    } else {
      ++tot;
      typ[i][0] = 1;
      ++b[typ[i][1]];
    }
  }
  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;
  if (m == 0) {
    memset(ans, 0, sizeof ans);
  }
  for (int i = 1; i <= n; ++i) {
    if (ans[i] == 0) {
      puts("Lie");
      continue;
    }
    if (typ[i][0] == 1) {
      if (g != -1) {
        if (typ[i][1] == g)
          puts("Truth");
        else
          puts("Lie");
      } else {
        if (x[typ[i][1]] == 1)
          puts("Not defined");
        else
          puts("Lie");
      }
    } else {
      if (x[typ[i][1]] <= 0)
        puts("Truth");
      else if (x[typ[i][1]] == 1 && g != -1)
        puts("Lie");
      else if (g != -1 && typ[i][1] != g)
        puts("Truth");
      else if (g != -1 && typ[i][1] == g)
        puts("Lie");
      else
        puts("Not defined");
    }
  }
  return 0;
}
