#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
vector<int> vec1[N], vec2[N];
int flag[N];
int main() {
  int n, m, res, x2, x1;
  char ch;
  int num;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < m; i++) {
    getchar();
    scanf("%c%d", &ch, &num);
    {
      if (ch == '+')
        vec1[num].push_back(i + 1);
      else
        vec2[num].push_back(i + 1);
    }
  }
  res = m;
  for (int i = 1; i <= n; i++) {
    x1 = vec1[i].size();
    x2 = vec2[i].size();
    if (x1 >= res) {
      res -= x2;
      for (int j = 0; j < x1; j++) flag[vec1[i][j]] = 1;
      for (int j = 0; j < x2; j++) flag[vec2[i][j]] = 2;
    } else if (x2 >= res) {
      res -= x1;
      for (int j = 0; j < x1; j++) flag[vec1[i][j]] = 2;
      for (int j = 0; j < x2; j++) flag[vec2[i][j]] = 1;
    } else {
      for (int j = 0; j < x1; j++) flag[vec1[i][j]] = 3;
      for (int j = 0; j < x2; j++) flag[vec2[i][j]] = 3;
    }
  }
  for (int i = 1; i <= n; i++) {
    if (flag[i] == 1)
      puts("Lie");
    else if (flag[i] == 2)
      puts("True");
    else
      puts("Not defined");
  }
  return 0;
}
