#include <bits/stdc++.h>
using namespace std;
const int INF = 2147483647;
const int MOD = (int)1e9 + 7;
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  map<int, int> cnt;
  int pos = 0, neg = 0;
  vector<int> claim;
  for (size_t(i) = 0; (i) < (size_t)(n); (i)++) {
    char buf[20];
    scanf("%s", buf);
    int x;
    sscanf(buf + 1, "%d", &x);
    if (buf[0] == '+') {
      pos++;
      cnt[x]++;
      claim.push_back(x);
    } else {
      neg++;
      cnt[-x]++;
      claim.push_back(-x);
    }
  }
  int commit = 0;
  for (size_t(i) = 0; (i) < (size_t)(((claim).size())); (i)++) {
    if (claim[i] > 0 && cnt[claim[i]] + neg - cnt[-claim[i]] == m) {
      commit = claim[i];
      break;
    }
  }
  if (commit) {
    for (size_t(i) = 0; (i) < (size_t)(((claim).size())); (i)++) {
      if (claim[i] > 0) {
        if (claim[i] == commit)
          puts("Truth");
        else
          puts("Lie");
      } else {
        if (abs(claim[i]) == commit)
          puts("Lie");
        else
          puts("Truth");
      }
    }
  } else {
    for (size_t(i) = 0; (i) < (size_t)(((claim).size())); (i)++) {
      if (claim[i] > 0)
        puts("Lie");
      else
        puts("Not defined");
    }
  }
  return 0;
}
