#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline bool chkmin(T &a, const T &b) {
  return a > b ? a = b, 1 : 0;
}
template <typename T>
inline bool chkmax(T &a, const T &b) {
  return a < b ? a = b, 1 : 0;
}
const int INF = 1e8;
const int oo = 0x3f3f3f3f;
const double eps = 1e-10;
int inline in() {
  int x = 0, c;
  for (; (unsigned)((c = getchar()) - '0') >= 10;) {
    if (c == '-') return -in();
    if (!~c) throw ~0;
  }
  do {
    x = (x << 3) + (x << 1) + (c - '0');
  } while ((unsigned)((c = getchar()) - '0') < 10);
  return x;
}
int n, m;
const int Maxn = 1e5 + 5;
int a[Maxn];
int diff[Maxn];
bool cancrime[Maxn];
const string Ans[3] = {"Not defined", "Truth", "Lie"};
int id[Maxn];
int main() {
  cin >> n >> m;
  int sum = 0;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    if (a[i] > 0)
      diff[a[i]]++;
    else
      diff[-a[i]]--, sum++;
  }
  int t = 0;
  for (int i = 1; i <= n; i++)
    if (sum + diff[i] == m) cancrime[i] = true, t++;
  for (int i = 1; i <= n; i++) {
    if (a[i] > 0) {
      if (cancrime[a[i]]) {
        if (t == 1)
          id[i] = 1;
        else
          id[i] = 0;
      } else
        id[i] = 2;
    } else {
      if (cancrime[-a[i]]) {
        if (t == 1)
          id[i] = 2;
        else
          id[i] = 0;
      } else
        id[i] = 1;
    }
  }
  for (int i = 1; i <= n; i++) cout << Ans[id[i]] << endl;
  return 0;
}
