#include <bits/stdc++.h>
using namespace std;
const int maxn = 100500;
int yes[maxn];
int no[maxn];
int sy = 0;
int sn = 0;
char c[100];
bool canyes[maxn];
bool canno[maxn];
int voice[maxn];
char gb[maxn];
vector<int> crimes;
int main() {
  int n;
  int m;
  scanf("%d", &n);
  scanf("%d", &m);
  int i, j;
  for (i = 0; i < n; ++i) {
    scanf("%s", c);
    int k = strlen(c);
    int num = 0;
    for (j = 1; j < k; ++j) num = num * 10 + c[j] - '0';
    --num;
    voice[i] = num;
    gb[i] = c[0];
    if (c[0] == '+') {
      yes[num]++;
      sy++;
    } else {
      no[num]++;
      sn++;
    }
  }
  for (i = 0; i < n; ++i)
    if (yes[i] + sn - no[i] == m) {
      crimes.push_back(i);
    }
  for (i = 0; i < n; ++i)
    if (gb[i] == '+') {
      if (crimes.size() == 1 && crimes[0] == voice[i])
        canyes[i] = 1;
      else if (!binary_search(crimes.begin(), crimes.end(), voice[i]))
        canno[i] = 1;
      else
        canyes[i] = canno[i] = 1;
    } else {
      if (crimes.size() == 1 && crimes[0] == voice[i])
        canno[i] = 1;
      else if (!binary_search(crimes.begin(), crimes.end(), voice[i]))
        canyes[i] = 1;
      else
        canno[i] = canyes[i] = 1;
    }
  for (i = 0; i < n; ++i)
    if (canyes[i] && !canno[i])
      puts("Truth");
    else if (!canyes[i] && canno[i])
      puts("Lie");
    else
      puts("Not defined");
  return 0;
}
