#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 7, inf = 1e9 + 7;
bool palid;
int n, m, x;
int arr[maxn];
short int mark[maxn];
vector<int> hemayat, shekayat;
vector<int> hami[maxn], shaki[maxn];
void update_status(int v) {
  if ((double)m > (double)n / 2) {
    if (hami[v].size() > (double)n / 2)
      mark[v] = 0;
    else if (shaki[v].size() > (double)n / 2)
      mark[v] = 1, palid = 1;
    else
      mark[v] = -1;
  } else if ((double)m < (double)n / 2) {
    if (hami[v].size() > (double)n / 2)
      mark[v] = 1, palid = 1;
    else if (shaki[v].size() > (double)n / 2)
      mark[v] = 0;
    else
      mark[v] = -1;
  }
}
int main() {
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    cin >> x;
    arr[i] = x;
    if (x > 0)
      shaki[abs(x)].push_back(i), shekayat.push_back(abs(x));
    else
      hami[abs(x)].push_back(i), hemayat.push_back(abs(x));
    mark[i] = -1;
  }
  sort(hemayat.begin(), hemayat.end());
  hemayat.resize(unique(hemayat.begin(), hemayat.end()) - hemayat.begin());
  for (int i = 1; i <= n; i++) {
    update_status(i);
  }
  if (palid) {
    for (int i = 1; i <= n; i++)
      if (mark[i] != 1) mark[i] = 0;
  } else if (hemayat.size() > m) {
    for (int u : hemayat)
      if (mark[u] == -1) mark[u] = 2;
    for (int u : shekayat)
      if (mark[u] == -1) mark[u] = 0;
  }
  for (int i = 1; i <= n; i++) {
    if (arr[i] < 0) {
      if (mark[abs(arr[i])] == 0)
        cout << "Truth" << '\n';
      else if (mark[abs(arr[i])] == 1)
        cout << "Lie" << '\n';
      else if (mark[abs(arr[i])] == 2)
        cout << "Not defined" << '\n';
    } else {
      if (mark[abs(arr[i])] == 0)
        cout << "Lie" << '\n';
      else if (mark[abs(arr[i])] == 1)
        cout << "Truth" << '\n';
      else if (mark[abs(arr[i])] == 2)
        cout << "Not defined" << '\n';
    }
  }
}
