#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int cnt;
int prime[maxn];
bool judge[maxn];
int sum[maxn], sqn[maxn];
inline void init(int n) {
  for (int i = 2; i <= n; i++) {
    if (!judge[i]) {
      prime[++cnt] = i;
      for (int tol = i; tol <= n; tol += i) {
        if (!judge[tol]) {
          sum[i]++;
          judge[tol] = true;
        }
      }
    }
  }
  for (int i = 2; i <= n; i++) sum[i] += sum[i - 1];
}
inline int num(int p, int c) {
  int ans = 1;
  while (c--) {
    ans *= p;
  }
  return ans;
}
inline int cal(int n, int p) {
  int l = 1, r = 1, x;
  while (n >= p) {
    n /= p;
    r++;
  }
  if (r == 2) return p;
  while (l < r) {
    int mid = (l + r) / 2;
    if (mid > 1) {
      cout << "A " << num(p, mid) << '\n';
      cout.flush();
      cin >> x;
    } else
      x = 1;
    if (x)
      l = mid + 1;
    else
      r = mid;
  }
  return num(p, l - 1);
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n, x, ans = 1, k, sq, tol, c, flag;
  cin >> n;
  tol = n;
  init(n);
  sq = sqrt(cnt);
  flag = cnt + 1;
  for (k = 0; sqn[k] < cnt;) sqn[++k] = k * sq;
  sqn[k] = cnt;
  for (int i = 0; i < k; i++) {
    for (int j = sqn[i] + 1; j <= sqn[i + 1]; j++) {
      cout << "B " << prime[j] << '\n';
      cout.flush();
      cin >> x;
    }
    tol -= sum[prime[sqn[i + 1]]] - sum[prime[sqn[i]]];
    cout << "A 1" << '\n';
    cout.flush();
    cin >> x;
    if (x == tol)
      continue;
    else {
      for (int j = sqn[i] + 1; j <= sqn[i + 1] && n >= prime[j]; j++) {
        cout << "A " << prime[j] << '\n';
        cout.flush();
        cin >> x;
        if (x) {
          c = cal(n, prime[j]);
          ans *= c;
          n /= c;
        }
        flag = j + 1;
      }
      break;
    }
  }
  for (int i = flag; n >= prime[i] && i <= cnt; i++) {
    cout << "A " << prime[i] * ans << '\n';
    cout.flush();
    cin >> x;
    if (x) {
      c = cal(n, prime[i]);
      ans *= c;
      n /= c;
    }
  }
  cout << "C " << ans << '\n';
  cout.flush();
}
