#include <bits/stdc++.h>
using namespace std;
int main() {
  int h, q;
  cin >> h >> q;
  vector<pair<long long, int> > v;
  long long L = (1ll << (h - 1)), R = (1ll << h) - 1;
  while (q--) {
    long long i, l, r, type;
    cin >> i >> l >> r >> type;
    l = l * (1ll << (h - i));
    r = (r + 1) * (1ll << (h - i)) - 1;
    if (type == 1) {
      L = max(L, l);
      R = min(R, r);
    } else {
      v.push_back(make_pair(l, 1));
      v.push_back(make_pair(r + 1, -1));
    }
  }
  v.push_back(make_pair((1ll << h), 1));
  sort(v.begin(), v.end());
  int cnt = 0;
  long long prev = (1ll << (h - 1));
  long long anscnt = 0, ans = 0;
  for (int i = 0; i < (int)v.size(); i++) {
    long long x = v[i].first, type = v[i].second;
    if (type == 1) {
      if (cnt == 0) {
        long long l = max(L, prev), r = min(R, x - 1);
        if (l <= r) {
          ans = r;
          anscnt += r - l + 1;
        }
      }
      cnt++;
    } else {
      cnt--;
      prev = x;
    }
  }
  if (anscnt == 0)
    cout << "Game cheated!"
         << "\n";
  else if (anscnt == 1)
    cout << ans << "\n";
  else
    cout << "Data not sufficient!"
         << "\n";
  return 0;
}
