#include <bits/stdc++.h>
using namespace std;
const int N_MAX = 100010;
int n, m;
pair<int, int> reply[N_MAX];
bool pos[N_MAX];
int posCnt, sumN, N[N_MAX], Y[N_MAX];
int solve(int i) {
  if (reply[i].first == 0) {
    if (posCnt == 1)
      return pos[reply[i].second] ? 0 : 1;
    else {
      if (pos[reply[i].second])
        return 2;
      else
        return 1;
    }
  } else {
    if (posCnt == 1)
      return pos[reply[i].second] ? 1 : 0;
    else {
      if (pos[reply[i].second])
        return 2;
      else
        return 0;
    }
  }
}
int main() {
  scanf("%d%d\n", &n, &m);
  for (int i = 1; i <= n; i++) {
    char ch;
    int x;
    scanf("%c%d\n", &ch, &x);
    if (ch == '-') {
      reply[i] = make_pair(0, x);
      N[x]++;
    } else {
      reply[i] = make_pair(1, x);
      Y[x]++;
    }
  }
  sumN = 0;
  for (int i = 1; i <= n; i++) sumN += N[i];
  posCnt = 0;
  for (int i = 1; i <= n; i++) {
    if (Y[i] + sumN - N[i] == m) {
      pos[i] = true;
      posCnt++;
    }
  }
  for (int i = 1; i <= n; i++) {
    int res = solve(i);
    if (res == 0)
      printf("Lie\n");
    else if (res == 2)
      printf("Not defined\n");
    else
      printf("Truth\n");
  }
}
