int main() { int n, x, ans = 1, t = 0; scanf("%d", &n); init(n); int sn = sqrt(n); for (int i = 1; prime[i] <= sn && i <= tot; i++) { x = ask_B(prime[i]); if (!x) continue; int p = prime[i]; if (!ask_A(p)) continue; while (p * prime[i] <= n && ask_A(p * prime[i])) p *= prime[i]; ans *= p; t = i; } if (ans > 1) { for (int i = t + 1; (ll)prime[i] * ans <= n; i++) { if (ask_A(ans * prime[i])) { printf("C %d\n", ans * prime[i]); fflush(stdout); return 0; } } } else { int len = sqrt(tot); for (int l = t + 1; l <= tot; l += len) { int r = min(tot, l + len - 1); for (int i = l; i <= r; i++) ask_B(prime[i]); x = ask_A(1); if (x > tot - r + 1) { for (int i = l; i <= r; i++) { if (ask_A(prime[i])) { printf("C %d", prime[i]); fflush(stdout); return 0; } } } } } printf("C %d\n", ans); fflush(stdout); return 0; }