#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int INF = (int)2e9 + 7;
const long long LINF = (long long)4e18;
template <typename T>
T input() {
  T ans = 0, m = 1;
  char c = ' ';
  while (!((c >= '0' && c <= '9') || c == '-')) c = getchar();
  if (c == '-') m = -1, c = getchar();
  while (c >= '0' && c <= '9') {
    ans = ans * 10 + (c - '0'), c = getchar();
  }
  return ans * m;
}
string nextString(bool flag = false) {
  char ch;
  string ans = "";
  do {
    ch = getchar();
  } while (ch <= ' ');
  while (1) {
    ans += ch;
    ch = getchar();
    if (!flag) {
      if (ch <= ' ') break;
    } else {
      if (ch < ' ') break;
    }
  }
  return ans;
}
char nextChar() {
  char ch;
  do {
    ch = getchar();
  } while (ch <= ' ');
  return ch;
}
void read(string& s) { s = nextString(); }
void read(char& c) { c = nextChar(); }
template <typename T>
void read(T& a) {
  a = input<T>();
}
template <typename T, typename... R>
void read(T& a, R&... r) {
  read(a);
  read(r...);
}
int n, c;
const int N = 2e5 + 10;
int _next[N], cnt[N];
bool ok(int add) {
  int cur = c;
  int coin = _next[c];
  while (coin > add) {
    cur -= min(cnt[coin], cur / coin) * coin;
    coin = min(_next[cur], _next[coin - 1]);
  }
  if (cur >= add) cur -= add;
  while (cur > 0 && coin > 0) {
    cur -= min(cnt[coin], cur / coin) * coin;
    coin = min(_next[cur], _next[coin - 1]);
  }
  return cur == 0;
}
void ex(int x) {
  cout << x;
  exit(0);
}
int32_t main() {
  srand(time(0));
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  read(c, n);
  for (int i = 0; i < n; ++i) {
    int x;
    read(x);
    cnt[x]++;
  }
  _next[0] = 0;
  for (int i = 1; i <= c; ++i) {
    _next[i] = _next[i - 1];
    if (cnt[i]) _next[i] = i;
  }
  for (int i = 1; i <= c; ++i) {
    if (!ok(i)) {
      ex(i);
    }
  }
  cout << "Greed is good\n";
}
