#include typedef long long ll; typedef unsigned long long ull; #define FOR(i,a,b) for(int (i)=(a);i<(b);i++) #define REP(i,n) FOR(i,0,n) #define RANGE(vec) (vec).begin(),(vec).end() using namespace std; class PilesOfStones { public: // grundy 数で解く void solve(void) { int N; cin>>N; map memo; function grundy = [&](int n) { if (memo.count(n)) return memo[n]; if (n <= 1) return 0; set S; if (n%2 == 0) S.insert(grundy(n/2) ^ grundy(n/2)); if (n%2 == 1) S.insert(grundy(n/2) ^ grundy(n/2+1)); if (n%3 == 0) S.insert(grundy(n/3) ^ grundy(n/3) ^ grundy(n/3)); if (n%3 == 1) S.insert(grundy(n/3) ^ grundy(n/3) ^ grundy(n/3+1)); if (n%3 == 2) S.insert(grundy(n/3) ^ grundy(n/3+1) ^ grundy(n/3+1)); int res = 0; while (S.count(res)) ++res; return memo[n] = res; }; if (grundy(N)) cout<<"A"<solve(); delete obj; return 0; } #endif