#include <bits/stdc++.h>
using namespace std;
int n, m;
int pos[111111], neg[111111];
int main() {
  int i, j, k;
  cin >> n >> m;
  memset(pos, 0, sizeof(pos));
  memset(neg, 0, sizeof(neg));
  int negativos, positivos;
  negativos = positivos = 0;
  int voto[111111];
  for (int i = 0; i < n; i++) {
    char c;
    cin >> c >> k;
    if (c == '+')
      pos[k - 1]++, positivos += 1, voto[i] = k;
    else
      neg[k - 1]++, negativos += 1, voto[i] = -k;
  }
  vector<int> res;
  map<int, bool> guilty;
  for (int i = 0; i < n; ++i) {
    int lies = 0, truths = 0;
    lies = neg[i] + positivos - pos[i];
    truths = n - lies;
    if (truths == m) res.push_back(i), guilty[i] = true;
  }
  for (int i = 0; i < n; ++i) {
    if (voto[i] > 0) {
      if (!guilty[abs(voto[i]) - 1])
        cout << "Lie" << endl;
      else if (res.size() == 1)
        cout << "Truth" << endl;
      else
        cout << "Not defined" << endl;
    } else {
      if (guilty[abs(voto[i]) - 1] && res.size() == 1)
        cout << "Lie" << endl;
      else if (guilty[abs(voto[i]) - 1])
        cout << "Not defined" << endl;
      else
        cout << "Truth" << endl;
    }
  }
  return 0;
}
