#include <bits/stdc++.h>
using namespace std;
long long L[55], R[55];
map<long long, int> m;
int main() {
  int h, q;
  scanf("%d%d", &h, &q);
  L[1] = 1, R[1] = 1;
  for (int i = 2; i <= 50; i++) {
    L[i] = L[i - 1] * 2;
    R[i] = R[i - 1] * 2 + 1;
  }
  if (q == 0) {
    if (h == 1)
      printf("1\n");
    else
      printf("Data not sufficient!\n");
    return 0;
  }
  for (int i = q; i > 0; i--) {
    int level, ans;
    long long l, r;
    scanf("%d%I64d%I64d%d", &level, &l, &r, &ans);
    int len = h - level;
    for (int i = 0; i < len; i++) l *= 2, r = r * 2 + 1;
    if (ans) {
      m[l]++;
      m[r + 1]--;
    } else {
      m[L[h]]++, m[l]--;
      m[r + 1]++, m[R[h] + 1]--;
    }
  }
  int sum = 0;
  long long pre = -1, cnt = 0, ans = 0;
  for (map<long long, int>::iterator i = m.begin(); i != m.end(); i++) {
    sum += i->second;
    if (pre != -1) {
      cnt += i->first - pre;
      ans = pre;
    }
    if (sum == q)
      pre = i->first;
    else
      pre = -1;
  }
  if (cnt == 0)
    printf("Game cheated!\n");
  else if (cnt == 1)
    printf("%I64d\n", ans);
  else
    printf("Data not sufficient!\n");
}
