#include <bits/stdc++.h>
using namespace std;
int mmax(int a, int b) { return (a > b) ? a : b; }
int mmin(int a, int b) { return (a < b) ? a : b; }
int aabs(int x) { return (x < 0) ? -x : x; }
const int ML = 100500;
int a[ML];
string ans[ML];
vector<int> za[ML], pr[ML];
int main() {
  int n, m, z = 0, p = 0, x;
  cin >> n >> m;
  if (n == 1) {
    cin >> x;
    if (m == 1 && x == 1)
      cout << "Truth\n";
    else
      cout << "Lie\n";
    return 0;
  }
  for (int t = 1; t <= n; t++) {
    ans[t] = "Truth1";
    cin >> a[t];
    if (a[t] < 0)
      p++, pr[-a[t]].push_back(t);
    else
      z++, za[a[t]].push_back(t);
  }
  for (int k = 1; k <= n; k++) {
    if (p - pr[k].size() + za[k].size() != m) continue;
    for (int t = 0; t < za[k].size(); t++)
      if (ans[za[k][t]] != "Truth") ans[za[k][t]] = "Not defined";
    for (int t = 0; t < pr[k].size(); t++) {
      if (ans[pr[k][t]] == "Lie") ans[pr[k][t]] = "Not defined";
      if (ans[pr[k][t]] == "Truth1") ans[pr[k][t]] = "Lie";
    }
  }
  for (int t = 1; t <= n; t++) {
    if (ans[t] == "Lie")
      cout << "Not defined\n";
    else if (ans[t] == "Truth1")
      cout << "Lie\n";
    else
      cout << "Truth\n";
  }
  return 0;
}
