#include <bits/stdc++.h>
using namespace std;
struct segm {
  long long x, y;
  segm(long long x1 = 0, long long y1 = 0) {
    x = x1;
    y = y1;
  }
  bool operator<(const segm &aux) const {
    if (x == aux.x) return y > aux.y;
    return x < aux.x;
  }
} v[300010], v1[300010];
int main() {
  int h, q, k, ans, nr = 0, nr1 = 0, nr2 = 0;
  scanf("%d%d", &h, &q);
  long long left = 1LL << (h - 1), right = (1LL << h) - 1, l, r, st, dr;
  for (int i = 1; i <= q; i++) {
    scanf("%d%I64d%I64d%d", &k, &l, &r, &ans);
    for (int j = k; j < h; j++) {
      l *= 2;
      r = r * 2 + 1;
    }
    if (ans == 0)
      v[++nr] = segm(l, r);
    else
      v1[++nr1] = segm(l, r);
  }
  if (nr1) {
    st = v1[1].x;
    dr = v1[1].y;
    for (int i = 2; i <= nr1; i++) {
      st = max(st, v1[i].x);
      dr = min(dr, v1[i].y);
    }
    if (st > dr) {
      printf("Game cheated!");
      return 0;
    }
    if (left < st) v[++nr] = segm(left, st - 1);
    if (dr < right) v[++nr] = segm(dr + 1, right);
  }
  sort(v + 1, v + 1 + nr);
  long long x = 0;
  for (int i = 1; i <= nr; i++)
    if (v[i].y > x) {
      v[++nr2] = v[i];
      x = v[i].y;
    }
  nr = nr2;
  nr2 = 0;
  if (nr) v[++nr2] = v[1];
  for (int i = 2; i <= nr; i++) {
    if (v[i].x <= v[nr2].y + 1)
      v[nr2].y = v[i].y;
    else
      v[++nr2] = v[i];
  }
  nr = nr2;
  if (nr1) {
    for (int i = 1; i <= nr; i++)
      if (v[i].x <= st && dr <= v[i].y) {
        printf("Game cheated!");
        return 0;
      }
  }
  if (nr == 1) {
    if (left == v[1].x && v[1].y + 1 == right)
      printf("%I64d", right);
    else if (left + 1 == v[1].x && v[1].y == right)
      printf("%I64d", left);
    else if (left == v[1].x && v[1].y == right)
      printf("Game cheated!");
    else
      printf("Data not sufficient!");
  } else if (nr == 2) {
    if (v[1].x == left && v[1].y + 1 == v[2].x - 1 && v[2].y == right)
      printf("%I64d", v[1].y + 1);
    else
      printf("Data not sufficient!");
  } else if (nr == 0 && h == 1)
    printf("1");
  else
    printf("Data not sufficient!");
  return 0;
}
