#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int step,mod,a[100000],i,t;
while(scanf("%d%d",&step,&mod)!=EOF)
{
for(i=1,a[0]=0;i<mod;i++)
a[i]=(a[i-1]+step)%mod;
sort(a,a+mod);
for(i=0,t=0;i<mod;i++)
{
if(a[i]!=i)
t=1; //本来写的是判断到重复的数则break,结果不给过。。。
}
if(t==0)
printf("%10d%10d Good Choice\n",step,mod);
else
printf("%10d%10d Bad Choice\n",step,mod);
printf("\n");
}
return 0;
}
//额晕,zoj的必须要求把所有的种子都判断一下,不然就不给你A……
//另外,在网上搜的时候发现一个算法,当step 和 mod 互质时,结果必为 good choice;否则,都是 bad choice;嗯,好方法~