#include <bits/stdc++.h>
using namespace std;
int busca(const vector<pair<pair<int, char>, int> >& ac, int x, int e, int d) {
  if (e == d) return e;
  int m = (e + d) / 2;
  if (ac[m].first.first < x)
    busca(ac, x, m + 1, d);
  else
    busca(ac, x, e, m);
}
int main() {
  int n, m;
  cin >> n >> m;
  vector<int> si(n, 0), no(n, 0);
  vector<pair<pair<int, char>, int> > ac(n);
  int total_no = 0;
  for (int i = 0; i < n; i++) {
    ac[i].second = i;
    cin >> ac[i].first.second >> ac[i].first.first;
    ac[i].first.first--;
    if (ac[i].first.second == '+') {
      si[ac[i].first.first]++;
    }
    if (ac[i].first.second == '-') {
      no[ac[i].first.first]++;
      total_no++;
    }
  }
  sort(ac.begin(), ac.end());
  vector<int> v(n, 0);
  int pi = 0, pf = 0;
  int suspects = 0;
  for (int i = 0; i < n; i++) {
    if (si[i] + total_no - no[i] == m) {
      suspects++;
      if (suspects == 1) {
        int j = 0;
        for (; j < n and ac[j].first.first < i; j++) {
          if (ac[j].first.second == '+')
            v[j] = -1;
          else
            v[j] = 1;
        }
        pi = j;
        for (; j < n and ac[j].first.first == i; j++) {
          if (ac[j].first.second == '+')
            v[j] = 1;
          else
            v[j] = -1;
        }
        pf = j;
        for (; j < n; j++) {
          if (ac[j].first.second == '+')
            v[j] = -1;
          else
            v[j] = 1;
        }
      } else if (suspects == 2) {
        int j = pi;
        for (; j < pf; j++) {
          if (ac[j].first.second == '+') {
            if (v[j] == 1) v[j] = 2;
          } else {
            if (v[j] == -1) v[j] = 2;
          }
        }
        j = busca(ac, i, 0, ac.size());
        for (; j < n and ac[j].first.first == i; j++) {
          if (ac[j].first.second == '+') {
            if (v[j] == -1) v[j] = 2;
          } else {
            if (v[j] == 1) v[j] = 2;
          }
        }
      } else {
        int j = busca(ac, i, 0, ac.size());
        for (; j < n and ac[j].first.first == i; j++) {
          if (ac[j].first.second == '+') {
            if (v[j] == -1) v[j] = 2;
          } else {
            if (v[j] == 1) v[j] = 2;
          }
        }
      }
    }
  }
  vector<int> results(n);
  for (int i = 0; i < n; i++) results[ac[i].second] = v[i];
  for (int i = 0; i < n; i++) {
    if (results[i] == 1)
      cout << "Truth" << endl;
    else if (results[i] == -1)
      cout << "Lie" << endl;
    else
      cout << "Not defined" << endl;
  }
}
