#include <bits/stdc++.h>
using namespace std;
int a[100100], add[100100], sub[100100];
vector<int> p;
int n, m, totalSub;
bool find(int x) {
  int l = 0, r = p.size() - 1;
  while (l <= r) {
    int g = (l + r) >> 1;
    if (p[g] == x) return true;
    if (p[g] < x)
      l = g + 1;
    else
      r = g - 1;
  }
  return false;
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    if (a[i] > 0)
      add[a[i]]++;
    else {
      sub[-a[i]]++;
      totalSub++;
    }
  }
  for (int i = 1; i <= n; i++)
    if (add[i] + (totalSub - sub[i]) == m) p.push_back(i);
  sort(p.begin(), p.end());
  for (int i = 1; i <= n; i++) {
    bool truth = false;
    bool lie = false;
    if (a[i] > 0) {
      if (find(a[i])) {
        truth = true;
        if (p.size() > 1) lie = true;
      } else
        lie = true;
    }
    if (a[i] < 0) {
      if (find(-a[i])) {
        lie = true;
        if (p.size() > 1) truth = true;
      } else
        truth = true;
    }
    if (truth && lie)
      printf("Not defined\n");
    else if (truth)
      printf("Truth\n");
    else
      printf("Lie\n");
  }
}
