#include <bits/stdc++.h>
#pragma comment(linker, "/stack:67108864")
using namespace std;
template <class T>
inline T abs(T a) {
  return (a) > 0 ? (a) : -(a);
}
template <class T>
inline T sqr(T a) {
  return (a) * (a);
}
const long double PI = 3.1415926535897932, EPS = 1E-9;
const int INF = 1000 * 1000 * 1000, NMAX = 100005;
int main() {
  int n, k;
  cin >> n >> k;
  int a[NMAX], t[NMAX];
  int rp[NMAX], rm[NMAX];
  memset(rp, 0, sizeof(rp));
  memset(rm, 0, sizeof(rm));
  for (int i = 0; i < int(n); ++i) {
    char c;
    cin >> c;
    if (c == '-')
      t[i] = 0;
    else
      t[i] = 1;
    cin >> a[i];
    --a[i];
    if (c == '-') {
      rm[a[i]]++;
    } else {
      rp[a[i]]++;
    }
  }
  int sum = 0;
  for (int i = 0; i < int(n); ++i) {
    sum += rm[i];
  }
  int ans[NMAX];
  for (int i = 0; i < int(n); ++i) {
    ans[i] = -1;
  }
  bool ch[NMAX];
  int cnt = 0;
  for (int winner = 0; winner < int(n); ++winner) {
    int cur = 0;
    cur += rp[winner];
    cur += (sum - rm[winner]);
    if (cur == k) {
      ch[winner] = true;
      ++cnt;
    } else
      ch[winner] = false;
  }
  for (int i = 0; i < int(n); ++i) {
    if (t[i] == 0) {
      if (!ch[a[i]])
        cout << "Truth\n";
      else {
        if (cnt == 1)
          cout << "Lie\n";
        else
          cout << "Not defined\n";
      }
    } else {
      if (ch[a[i]]) {
        if (cnt == 1)
          cout << "Truth\n";
        else
          cout << "Not defined\n";
      } else {
        cout << "Lie\n";
      }
    }
  }
  return 0;
}
