#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 7;
const int LIM = 100003;
int main() {
  long long h, q;
  cin >> h >> q;
  long long L = (1ll << (h - 1ll));
  long long R = (1ll << h) - 1ll;
  long long maxl = L;
  long long minr = R;
  vector<pair<long long, long long>> v;
  for (int i = 0; i < q; i++) {
    long long hi, l, r, ans;
    cin >> hi >> l >> r >> ans;
    while (hi < h) {
      hi++;
      l = l * 2;
      r = r * 2 + 1;
    }
    if (ans) {
      maxl = max(maxl, l);
      minr = min(minr, r);
    } else {
      v.push_back(make_pair(l, r));
    }
  }
  if (minr < R) v.push_back(make_pair(minr + 1, R));
  if (maxl > L) v.push_back(make_pair(L, maxl - 1));
  sort(v.begin(), v.end());
  long long qr = L - 1;
  long long sum_dist = 0;
  long long ans = 0;
  v.push_back(make_pair(R + 1, R + 1));
  for (int i = 0; i < v.size(); i++) {
    if (v[i].first > qr + 1) {
      sum_dist += v[i].first - qr - 1;
      ans = v[i].first - 1;
    }
    qr = max(qr, v[i].second);
  }
  if (sum_dist == 0) {
    cout << "Game cheated!";
  } else if (sum_dist == 1) {
    cout << ans;
  } else {
    cout << "Data not sufficient!";
  }
  return 0;
}
