#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  cin >> n >> m;
  vector<int> a(n);
  for (int i = 0; i < n; ++i) cin >> a[i];
  vector<int> nYes(n, 0), nNo(n, 0);
  vector<list<int> > yes(n), no(n);
  int totYes = 0, totNo = 0;
  for (int i = 0; i < n; ++i) {
    if (a[i] > 0) {
      nYes[a[i] - 1]++;
      yes[a[i] - 1].push_back(i);
      totYes++;
    } else {
      nNo[-a[i] - 1]++;
      no[-a[i] - 1].push_back(i);
      totNo++;
    }
  }
  bool isAnsSet = false;
  vector<int> ans(n, 0);
  vector<int> cur(n, 0);
  int iPrev = -1;
  for (int i = 0; i < n; ++i) {
    int numYes = nYes[i] + totNo - nNo[i];
    if (numYes == m) {
      if (!isAnsSet) {
        int c = 0;
        for (int j = 0; j < n; ++j) {
          if (a[j] > 0) {
            if (a[j] - 1 == i) {
              ans[j] = 1;
              c++;
            } else
              ans[j] = 2;
          } else {
            if (-a[j] - 1 == i) {
              ans[j] = 2;
              c++;
            } else
              ans[j] = 1;
          }
        }
        cur = ans;
        iPrev = i;
        isAnsSet = true;
      } else {
        list<int> &lyes = yes[iPrev];
        for (list<int>::iterator it = lyes.begin(); it != lyes.end(); ++it) {
          ans[*it] |= 2;
        }
        list<int> &lno = no[iPrev];
        for (list<int>::iterator it = lno.begin(); it != lno.end(); ++it)
          ans[*it] |= 1;
        {
          list<int> &lyes = yes[i];
          for (list<int>::iterator it = lyes.begin(); it != lyes.end(); ++it)
            ans[*it] |= 1;
          list<int> &lno = no[i];
          for (list<int>::iterator it = lno.begin(); it != lno.end(); ++it)
            ans[*it] |= 2;
        }
      }
    }
  }
  for (int i = 0; i < n; ++i) {
    if (ans[i] == 1)
      cout << "Truth\n";
    else if (ans[i] == 2)
      cout << "Lie\n";
    else
      cout << "Not defined\n";
  }
  return 0;
}
