#include <bits/stdc++.h>
using namespace std;
vector<int> accuse[111111];
vector<int> honour[111111];
int dns;
int ups;
int wrong_accuse;
int right_honour;
int was_true[111111];
int was_false[111111];
bool type[111111];
int main() {
  int n, m;
  cin >> n >> m;
  for (int i = n; i--;) {
    int targ;
    cin >> targ;
    if (targ < 0) {
      type[i] = 0;
      honour[-targ - 1].push_back(i);
      ++ups;
    } else {
      type[i] = 1;
      accuse[+targ - 1].push_back(i);
      ++dns;
    }
  }
  for (int i = n; i--;) {
    int correct = n - (dns - accuse[i].size()) - honour[i].size();
    if (correct == m) {
      wrong_accuse += 1;
      right_honour += 1;
      for (auto e : accuse[i]) {
        was_false[e]--;
        was_true[e]++;
      }
      for (auto e : honour[i]) {
        was_false[e]++;
        was_true[e]--;
      }
    }
  }
  for (int i = n; i--;) {
    if (type[i] == 1)
      was_false[i] += wrong_accuse;
    else
      was_true[i] += right_honour;
    if (was_false[i] == was_true[i] or was_false[i] != 0 and was_true[i] != 0) {
      cout << "Not defined" << endl;
    } else if (was_false[i] == 0) {
      cout << "Truth" << endl;
    } else {
      cout << "Lie" << endl;
    }
  }
}
