#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 10;
const long long int INFLL = 1e18 + 10;
const long double EPS = 1e-8;
const long double EPSLD = 1e-14;
const long long int MOD = 1e9 + 7;
template <class T>
T &chmin(T &a, const T &b) {
  return a = min(a, b);
}
template <class T>
T &chmax(T &a, const T &b) {
  return a = max(a, b);
}
const int MAX_N = 100010;
int n, m;
int a[MAX_N];
int b[MAX_N];
int as, bs;
int s[MAX_N];
set<int> ss;
int main() {
  scanf("%d %d\n", &n, &m);
  for (int i = (0); i < (int)(n); i++) {
    char c;
    int x;
    scanf("%c%d\n", &c, &x);
    x--;
    if (c == '+') {
      as++;
      a[x]++;
      s[i] = x;
    } else if (c == '-') {
      bs++;
      b[x]++;
      s[i] = x + INF;
    }
  }
  for (int i = (0); i < (int)(n); i++) {
    if (a[i] + (bs - b[i]) == m) ss.insert(i);
  }
  for (int i = (0); i < (int)(n); i++) {
    if (s[i] >= INF) {
      int r = s[i] - INF;
      if (ss.find(r) == ss.end()) {
        puts("Truth");
      } else {
        if (ss.size() == 1)
          puts("Lie");
        else
          puts("Not defined");
      }
    } else {
      if (ss.find(s[i]) == ss.end()) {
        puts("Lie");
      } else {
        if (ss.size() == 1)
          puts("Truth");
        else
          puts("Not defined");
      }
    }
  }
  return 0;
}
