#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:60000000")
using namespace std;
template <class T>
T sqr(T x) {
  return x * x;
}
double const pi = 3.1415926535897932384626433832795;
int const inf = (int)1e9;
long long const inf64 = (long long)4e18;
const string name = "b";
const int NMAX = 100100;
int n, m, GLOB, ans[NMAX];
vector<int> g[2][NMAX];
int main() {
  cin >> n >> m;
  GLOB = 0;
  int minus = 0;
  for (int i = 0; i < (int)n; i++) {
    char ch = ' ';
    while (ch != '+' && ch != '-') scanf("%c", &ch);
    int x;
    scanf("%d", &x);
    x--;
    if (ch == '+')
      g[0][x].push_back(i);
    else {
      g[1][x].push_back(i);
      minus++;
    }
  }
  memset(ans, 0, sizeof(ans));
  for (int i = 0; i < (int)n; i++) {
    int now = g[0][i].size() + (minus - g[1][i].size());
    if (now == m) {
      for (int j = 0; j < (int)g[0][i].size(); j++) ans[g[0][i][j]] = 1;
      for (int j = 0; j < (int)g[1][i].size(); j++) ans[g[1][i][j]] = -1;
      GLOB++;
    } else {
      for (int j = 0; j < (int)g[0][i].size(); j++) ans[g[0][i][j]] = -2;
      for (int j = 0; j < (int)g[1][i].size(); j++) ans[g[1][i][j]] = 2;
    }
  }
  for (int i = 0; i < (int)n; i++) {
    if (ans[i] == 1 && GLOB == 1)
      printf("Truth\n");
    else if (ans[i] == 2)
      printf("Truth\n");
    else if (ans[i] == -1 && GLOB == 1)
      printf("Lie\n");
    else if (ans[i] == -2)
      printf("Lie\n");
    else
      printf("Not defined\n");
  }
  return 0;
}
