#include #include #include #include #include #include using namespace std; #define rep(i, n) for (int i = 0; i < int(n); i++) // Brute force int memo[10010][10010][2]; int dfs(int a, int b, bool is_alice) { //cout << a << " " << b << endl; if (a < 0 || b < 0) throw "a or b is negative"; assert(a >= 0 && b >= 0); if (a - 1 == 0) return is_alice; if (a % b == 0) return is_alice; if (memo[a][b][is_alice] != -1) return memo[a][b][is_alice]; if (a >= b) { memo[a][b][is_alice] = dfs(b, a % b, !is_alice); } return memo[a][b][is_alice] = max(memo[a][b][is_alice], (int)dfs(b, a - 1, !is_alice)); } int main() { int a, b; cin >> a >> b; if (a > 10000 || b > 10000) { throw "a or b is too large"; } rep(i, 10010) rep(j, 10010) rep(k, 2) memo[i][j][k] = -1; dfs(a, b, true); cout << (memo[a][b][true] > 0 ? "Alice" : "Bob") << endl; }