#include <bits/stdc++.h>
using namespace std;
template <class _T>
inline _T sqr(const _T& x) {
  return x * x;
}
template <class _T>
inline string tostr(const _T& a) {
  ostringstream os("");
  os << a;
  return os.str();
}
const long double PI = 3.1415926535897932384626433832795L;
const long double EPS = 1e-11;
char TEMPORARY_CHAR;
const int INF = 0x3f3f3f3f;
const int N = 1 << 16;
inline void input(int& a) {
  a = 0;
  while ((TEMPORARY_CHAR = getchar()) > '9' || TEMPORARY_CHAR < '0') {
  }
  while (TEMPORARY_CHAR <= '9' && TEMPORARY_CHAR >= '0') {
    a = (a << 3) + (a << 1) + TEMPORARY_CHAR - '0';
    TEMPORARY_CHAR = getchar();
  }
}
int main() {
  int(n);
  input((n));
  ;
  int(m);
  input((m));
  ;
  pair<int, int> a[100001];
  int gol[100001];
  int op = 0;
  for (int i = 0; i < (int)(n); i++) {
    char c = getchar();
    int(g);
    input((g));
    ;
    if (c == '-') {
      op++;
      a[g - 1].second++;
      gol[i] = g;
    } else {
      a[g - 1].first++;
      gol[i] = -g;
    }
  }
  int pr[100001];
  memset((pr), 0, sizeof(pr));
  int num = 0;
  for (int i = 0; i < (int)(n); i++) {
    int col = op - a[i].second + a[i].first;
    if (col == m) {
      pr[i] = true;
      num++;
    }
  }
  for (int i = 0; i < (int)(n); i++) {
    if (gol[i] > 0 && !pr[gol[i] - 1]) {
      cout << "Truth\n";
      continue;
    }
    if (gol[i] > 0 && num == 1 && pr[abs(gol[i]) - 1]) {
      cout << "Lie\n";
      continue;
    }
    if (gol[i] < 0 && !pr[-gol[i] - 1]) {
      cout << "Lie\n";
      continue;
    }
    if (gol[i] < 0 && num == 1 && pr[-gol[i] - 1]) {
      cout << "Truth\n";
      continue;
    }
    cout << "Not defined\n";
  }
  return 0;
}
