#include <bits/stdc++.h>
using namespace std;
struct ntype {
  char q;
  int x;
};
int s = 0, R, i, j, n, m, x;
char q;
string answer[100020];
int A[100020], B[100020];
ntype F[100020];
bool L[100020];
int main() {
  scanf("%d%d", &n, &m);
  if (m == 0) {
    for (i = 0; i < n; ++i) printf("Lie\n");
    return 0;
  }
  for (i = 0; i < n; ++i) {
    cin >> q;
    scanf("%d", &x);
    --x;
    F[i].q = q;
    F[i].x = x;
    if (q == '-') {
      s = s + 1;
      B[x]++;
    } else {
      A[x]++;
    }
  }
  int w = 0;
  for (i = 0; i < n; ++i) {
    if (A[i] > 0) {
      R = A[i] + s - B[i];
      if (R == m) L[i] = true, w++;
    }
  }
  if (w == 0) {
    for (i = 0; i < n; ++i)
      if (F[i].q == '-')
        printf("Not defined\n");
      else
        printf("Lie\n");
    return 0;
  }
  if (w == 1) {
    for (i = 0; i < n; ++i)
      if (F[i].q == '-') {
        if (L[F[i].x])
          printf("Lie\n");
        else
          printf("Truth\n");
      } else {
        if (L[F[i].x])
          printf("Truth\n");
        else
          printf("Lie\n");
      }
    return 0;
  }
  for (i = 0; i < n; ++i) answer[i] = "Not defined";
  for (i = 0; i < n; ++i) {
    if (F[i].q == '-') {
      if (L[F[i].x]) {
      } else
        answer[i] = "Truth";
    } else {
      if (!L[F[i].x]) answer[i] = "Lie";
    }
  }
  for (i = 0; i < n; ++i) cout << answer[i] << endl;
}
