#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
using ld = long double;
const ll mod = 1000000007;
int n, m, tdt = 0, tdf = 0;
vector<int> dt, df;
vector<pair<int, int> > a;
int main() {
  cin >> n >> m;
  dt.assign(n, 0);
  df.assign(n, 0);
  for (int i = 0; i < n; i++) {
    char symb;
    int x;
    cin >> symb >> x;
    if (symb == '+') {
      a.push_back({0, x - 1});
      dt[x - 1]++;
      tdt++;
    } else {
      a.push_back({1, x - 1});
      df[x - 1]++;
      tdf++;
    }
  }
  int killer = -1, cnt = 0;
  for (int i = 0; i < n; i++) {
    if (tdf - df[i] + dt[i] == m) {
      killer = i;
      ++cnt;
    }
  }
  if (killer != -1 && cnt < 2) {
    for (int i = 0; i < n; i++) {
      if (!a[i].first) {
        if (a[i].second == killer) {
          cout << "Truth\n";
        } else {
          cout << "Lie\n";
        }
      } else {
        if (a[i].second == killer) {
          cout << "Lie\n";
        } else {
          cout << "Truth\n";
        }
      }
    }
  } else {
    for (int i = 0; i < n; i++) {
      if (!a[i].first) {
        int val = a[i].second;
        if (tdt - dt[val] + df[val] != n - m) {
          cout << "Lie\n";
        } else {
          cout << "Not defined\n";
        }
      } else {
        int val = a[i].second;
        if (tdt - dt[val] + df[val] != n - m) {
          cout << "Truth\n";
        } else {
          cout << "Not defined\n";
        }
      }
    }
  }
  return 0;
}
