#include <bits/stdc++.h>
using namespace std;
int h, q, ii, ans;
long long l, r, inf = 1LL << 60;
vector<pair<long long, long long> > yes, no, to_del, new_int;
set<pair<long long, long long> > valid;
set<pair<long long, long long> >::iterator it;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> h >> q;
  for (int i = 0; i < q; i++) {
    cin >> ii >> l >> r >> ans;
    l <<= (h - ii);
    while (ii < h) r <<= 1, r += 1, ii++;
    if (ans)
      yes.push_back(make_pair(l, r));
    else
      no.push_back(make_pair(l, r));
  }
  sort(yes.begin(), yes.end());
  sort(no.begin(), no.end());
  l = 1LL << (h - 1), r = (1LL << h) - 1;
  int n = yes.size();
  for (int i = 0; i < n; i++) {
    if (yes[i].first > r or yes[i].second < l) {
      puts("Game cheated!");
      return 0;
    }
    l = max(l, yes[i].first), r = min(r, yes[i].second);
  }
  valid.insert(make_pair(l, r));
  n = no.size();
  for (int i = 0; i < n and !valid.empty(); i++) {
    it = valid.upper_bound(make_pair(no[i].second, inf));
    if (it == valid.begin()) continue;
    it--;
    to_del.clear(), new_int.clear();
    while (it->second >= no[i].first) {
      to_del.push_back(*it);
      if (it->second > no[i].second and it->first >= no[i].first)
        new_int.push_back(make_pair(no[i].second + 1, it->second));
      else if (it->first < no[i].first and it->second <= no[i].second)
        new_int.push_back(make_pair(it->first, no[i].first - 1));
      else if (it->first < no[i].first and it->second > no[i].second) {
        new_int.push_back(make_pair(it->first, no[i].first - 1));
        new_int.push_back(make_pair(no[i].second + 1, it->second));
      }
      if (it == valid.begin()) break;
      it--;
    }
    for (__typeof(to_del.begin()) it(to_del.begin()); it != to_del.end(); it++)
      valid.erase(*it);
    for (__typeof(new_int.begin()) it(new_int.begin()); it != new_int.end();
         it++)
      valid.insert(*it);
  }
  if (valid.empty())
    puts("Game cheated!");
  else if (valid.size() == 1) {
    pair<long long, long long> p = *valid.begin();
    if (p.first == p.second)
      cout << p.first << "\n";
    else
      puts("Data not sufficient!");
  } else
    puts("Data not sufficient!");
  return 0;
}
