/* * java 出来大数真的很方便的,本题用java 出来很简单 * 题意: k = P * q (p q 为素数 && p < q) if(p < l) 输出 BAD p else GOOD * 素数打表 + 大数取摸 */ import java.io.*; import java.util.*; import java.math.*; public class Main2303 { static final int N = 1000005; static int prime[] = new int[N / 4]; static boolean hash[] = new boolean[N]; static int p; public static void main(String[] args){ Prime(); Scanner cin = new Scanner(System.in); BigInteger k; //BigInteger sum = BigInteger.valueOf(0); boolean flag; while(cin.hasNext()){ k = cin.nextBigInteger(); int l; l = cin.nextInt(); //l = cin.nextBigInteger(); if(l == 0) //if(k.intValue() == 0 && l.intValue() == 0) break; flag = true; for(int i = 0; prime[i] < l; i++){ /* // 这个判断出错了,prime[] 的数是相差很大的 if(prime[i] > l){ //System.out.println("GOOD"); break; } */ BigInteger a = BigInteger.valueOf(prime[i]); //if(sum.equals( k.remainder(a) )){ if(k.remainder(a).intValue() == 0){ System.out.print("BAD "); System.out.println(prime[i]); flag = false; break; } } if(flag){ System.out.println("GOOD"); } } } static void Prime(){ Arrays.fill(hash, (boolean)false); int tt = (int)Math.sqrt(1.0 * N); for(int i = 2; i < tt; i++) if(!hash[i]) for(int j = 2; j * i < N; j++) hash[i *j] = true; p = 0; for(int i = 2; i < N; i++) if(!hash[i]) prime[p++] = i; } }