#include #include using namespace std; static inline constexpr void prepare(const uint32_t N, const uint32_t M, const pair strings[200'001], uint32_t flag[1'000'001]) { for (uint32_t i = 1; i <= N; ++i) flag[i] = 0; for (uint32_t i = 0; i != M; ++i) { if (strings[i].first < strings[i].second) flag[strings[i].first] = 1, flag[strings[i].second] = 2; else flag[strings[i].first] = 2, flag[strings[i].second] = 1; } } static inline constexpr const char* solve(const uint32_t N, const uint32_t flag[1'000'001]) { uint32_t count = 0, stacking_count = 0; uint32_t stack[200'000]; for (uint32_t i = 1; i <= N; ++i) switch (flag[i]) { case 0: ++count; break; case 1: stack[stacking_count] = count; ++stacking_count; count = 0; break; case 2: if ((count & 3) == 2) return "Akane"; count = stack[--stacking_count]; break; } if ((count & 3) == 2) return "Akane"; else return "Aoi"; } int main() { cin.tie(nullptr); ios::sync_with_stdio(false); uint32_t N, M, i; cin >> N >> M; pair strings[200'000]; for (i = 0; i != M; ++i) cin >> strings[i].first >> strings[i].second; uint32_t flag[1'000'001]; prepare(N, M, strings, flag); cout << solve(N, flag) << '\n'; return 0; }