#include <bits/stdc++.h>
struct mes {
  int to, next;
} list[100100];
int top = 1, t[100100], l[100100], ans[100100], head[100100], tag[100100],
    fa = 0;
void Insert(int p, int i) {
  list[top].to = i;
  list[top].next = head[p];
  head[p] = top++;
}
int main() {
  int i, n, m, total = 0, p;
  scanf("%d%d", &n, &m);
  for (i = 1; i <= n; i++) {
    scanf("%d", &p);
    if (p > 0) {
      ans[i] = 0;
      l[p]++;
      Insert(p, i);
    } else {
      total++;
      ans[i] = 1;
      t[-p]++;
      Insert(-p, i);
    }
  }
  for (i = 1; i <= n; i++) {
    if (total - t[i] + l[i] == m) tag[fa++] = i;
  }
  if (fa == 1) {
    for (i = 0; i < fa; i++) {
      p = head[tag[i]];
      while (p) {
        ans[list[p].to] = (ans[list[p].to] + 1) % 2;
        p = list[p].next;
      }
    }
  } else if (fa > 1) {
    for (i = 0; i < fa; i++) {
      p = head[tag[i]];
      while (p) {
        ans[list[p].to] = 2;
        p = list[p].next;
      }
    }
  }
  for (i = 1; i <= n; i++) {
    if (ans[i] == 0)
      printf("Lie\n");
    else if (ans[i] == 1)
      printf("Truth\n");
    else if (ans[i] == 2)
      printf("Not defined\n");
  }
  return 0;
}
