#include <bits/stdc++.h>
using namespace std;
const int inf = 1e9 + 7;
const long long linf = 1e16 + 7;
const int N = 2e5 + 7;
int a[N], maxval[N], num[N];
int pre[N], nxt[N];
int c, n, give;
bool check() {
  int val = N, tmp = c;
  while (tmp) {
    val = min(val, tmp >= give ? max(maxval[tmp], give) : maxval[tmp]);
    if (!val) return false;
    int times = min(tmp / val, num[val]);
    tmp -= times * val;
    val = pre[val];
  }
  return true;
}
int main() {
  scanf("%d%d", &c, &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", a + i);
    ++num[a[i]];
  }
  sort(a + 1, a + n + 1);
  n = unique(a + 1, a + n + 1) - a - 1;
  a[n + 1] = N;
  for (int i = 0; i <= n; i++) {
    maxval[a[i]] = a[i];
    pre[a[i + 1]] = a[i];
    nxt[a[i]] = a[i + 1];
  }
  for (int i = 1; i <= c; i++)
    if (maxval[i] == 0) maxval[i] = maxval[i - 1];
  int lb = 0;
  num[0] = 1;
  for (give = 0; give <= c; give++) {
    if (nxt[lb] <= give) lb = nxt[lb];
    ++num[give];
    if (num[give] == 1) {
      nxt[give] = nxt[lb];
      pre[give] = lb;
      pre[nxt[lb]] = give;
      nxt[lb] = give;
    }
    if (!check()) {
      printf("%d\n", give);
      return 0;
    }
    --num[give];
    if (!num[give]) {
      nxt[pre[give]] = nxt[give];
      pre[nxt[give]] = pre[give];
    }
  }
  puts("Greed is good");
  return 0;
}
