#include <bits/stdc++.h>
using namespace std;
const int undef = 1;
const int truth = 2;
set<int> possible;
vector<int> yes[100010];
vector<int> no[100010];
int status[100010];
int pattern[100010];
int main() {
  cin.sync_with_stdio(0);
  cin.tie(0);
  int n, m, noLen = 0, yesLen = 0;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    int val;
    cin >> val;
    if (val < 0) {
      val = abs(val);
      no[val].push_back(i);
      noLen++;
    } else {
      yes[val].push_back(i);
      yesLen++;
    }
  }
  for (int i = 1; i <= n; i++) {
    int len = yes[i].size() + noLen - no[i].size();
    if (len == m) possible.insert(i);
  }
  if (possible.size() > 1) {
    for (auto i : possible) {
      for (auto v : yes[i]) status[v] = undef;
      pattern[i]--;
    }
    for (int i = 1; i <= n; i++) {
      for (auto j : no[i]) status[j] = undef;
    }
    for (int i = 1; i <= n; i++) {
      if (no[i].size()) pattern[i] += possible.size();
    }
    for (int i = 1; i <= n; i++)
      if (pattern[i] == possible.size())
        for (int j : no[i]) status[j] = truth;
  }
  if (possible.size() == 1) {
    int num = *possible.begin();
    for (int i = 1; i <= n; i++) {
      if (i == num) {
        for (auto j : yes[i]) status[j] = truth;
      } else {
        for (auto j : no[i]) status[j] = truth;
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    if (status[i] == undef) {
      cout << "Not defined"
           << "\n";
    } else if (status[i] == truth) {
      cout << "Truth"
           << "\n";
    } else {
      cout << "Lie"
           << "\n";
    }
  }
  return 0;
}
