#include <bits/stdc++.h>
using namespace std;
void sc(char& c) {
  char temp[4];
  scanf("%s", temp);
  c = temp[0];
}
struct debugger {
  template <typename T>
  debugger& operator,(const T& v) {
    cerr << v << " ";
    return *this;
  }
} dbg;
int testnum;
const int MAXN = 100005;
bool kill[MAXN];
int pcnt[MAXN];
int ncnt[MAXN];
int ptot, ntot;
int arr[MAXN];
int n, m;
void preprocess() {}
void solve() {
  scanf("%d", &n);
  scanf("%d", &m);
  memset(pcnt, 0, sizeof pcnt);
  memset(ncnt, 0, sizeof ncnt);
  memset(kill, false, sizeof kill);
  ptot = 0;
  ntot = 0;
  int x;
  for (int i = 0; i < n; i++) {
    scanf("%d", &x);
    if (x > 0) {
      pcnt[x - 1]++;
      ptot++;
    } else {
      ncnt[(-x) - 1]++;
      ntot++;
    }
    arr[i] = x;
  }
  int kcnt = 0;
  for (int i = 0; i < n; i++) {
    if (pcnt[i] + (ntot - ncnt[i]) == m) {
      kill[i] = true;
      kcnt++;
    }
  }
  for (int i = 0; i < n; i++) {
    int x = arr[i];
    if (x > 0) {
      if (kill[x - 1] && kcnt == 1)
        printf("Truth\n");
      else if (kill[x - 1])
        printf("Undefined\n");
      else
        printf("Lie\n");
    } else {
      x = -x;
      if (kill[x - 1] && kcnt == 1)
        printf("Lie\n");
      else if (kill[x - 1])
        printf("Undefined\n");
      else
        printf("Truth\n");
    }
  }
}
bool input() { return true; }
int main() {
  preprocess();
  int T = 1;
  for (testnum = 1; testnum <= T; testnum++) {
    if (!input()) break;
    solve();
  }
}
