#include <bits/stdc++.h>
using namespace std;
const int Maxn = 1e5 + 10;
int sum, cnt[Maxn];
int n, m;
struct Suspect {
  bool p;
  int t;
} s[Maxn];
int getInt(char str[]) {
  int ret = 0;
  int i, j;
  for (i = 0; !(str[i] <= '9' && str[i] >= '0'); ++i)
    ;
  for (i = 1, j = 1; str[i] <= '9' && str[i] >= '0'; ++i, j *= 10) {
    ret += (str[i] - '0') * j;
  }
  return ret;
}
bool crime[Maxn];
int check() {
  int num = 0;
  int ret = 0;
  for (int i = 1; i <= n; ++i) {
    if (sum + cnt[i] == m) {
      ret = i, num++;
      crime[i] = 1;
    }
  }
  if (num == 1) return ret;
  return 0;
}
int main() {
  scanf("%d%d", &n, &m);
  sum = 0;
  memset(cnt, 0, sizeof(cnt));
  memset(crime, 0, sizeof(crime));
  for (int i = 0; i < n; ++i) {
    char ss[10];
    getchar();
    scanf("%s", ss);
    if (ss[0] == '+')
      s[i].p = 1;
    else
      s[i].p = 0;
    s[i].t = getInt(ss);
    if (ss[0] == '+')
      cnt[s[i].t]++;
    else
      cnt[s[i].t]--, sum++;
  }
  if (int crimer = check()) {
    for (int i = 0; i < n; ++i) {
      if (s[i].t == crimer && s[i].p == 1)
        printf("Truth\n");
      else if (s[i].t != crimer && s[i].p == 0)
        printf("Truth\n");
      else
        printf("Lie\n");
    }
  } else {
    for (int i = 0; i < n; ++i) {
      if (s[i].p == 1 && crime[s[i].t] == 0) {
        printf("Lie\n");
      } else if (s[i].p == 0 && crime[s[i].t] == 0)
        printf("Truth\n");
      else
        printf("Not defined\n");
    }
  }
  return 0;
}
