#include <bits/stdc++.h>
using namespace std;
const long long maxn = 100010;
const long long mod = 1000000007;
const long double eps = 1e-9;
const long long inf = ((1ll << 31ll) - 1ll);
const long long INF = 10000000000000007ll;
const long double pi = acos(-1);
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
long long qpow(long long b, long long e) {
  if (!e) return 1;
  if (e & 1) return qpow(b, e - 1) * b % mod;
  long long pwur = qpow(b, e >> 1);
  return pwur * pwur % mod;
}
long long modinv(long long x) { return qpow(x, mod - 2); }
long long n;
vector<long long> pr1, pr2;
vector<long long> block[505];
bool isp(long long x) {
  for (long long i = 2; i * i <= x; i++)
    if (x % i == 0) return false;
  return true;
}
long long qa(long long x) {
  cout << "A " << x << '\n';
  cout.flush();
  long long y;
  cin >> y;
  return y;
}
long long qb(long long x) {
  cout << "B " << x << '\n';
  cout.flush();
  long long y;
  cin >> y;
  return y;
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.setf(ios::fixed);
  cout.precision(0);
  srand(time(NULL));
  cin >> n;
  if (n == 1) {
    cout << "C " << 1 << '\n';
    cout.flush();
    return 0;
  }
  if (n <= 3000) {
    long long ans = 1;
    for (long long i = 2; i <= n; i++)
      if (isp(i)) pr1.push_back(i);
    for (auto i : pr1) {
      long long x = qb(i);
      long long y = qa(i);
      if (y) {
        for (long long j = i; j <= n; j *= i) {
          long long z = qa(j);
          if (z == 0) {
            ans *= j / i;
            break;
          }
          if (j * i > n) {
            ans *= j;
          }
        }
      }
    }
    cout << "C " << ans << '\n';
    cout.flush();
    return 0;
  }
  long long ans = 1;
  for (long long i = 2; i <= sqrt(n); i++)
    if (isp(i)) pr1.push_back(i);
  for (long long i = sqrt(n) + 1; i <= n; i++)
    if (isp(i)) pr2.push_back(i);
  for (auto i : pr1) {
    long long x = qb(i);
    long long y = qa(i);
    if (y) {
      for (long long j = i * i; j <= n; j *= i) {
        long long z = qa(j);
        if (z == 0) {
          ans *= j / i;
          break;
        }
        if (j * i > n) {
          ans *= j;
        }
      }
    }
  }
  long long cnt = 0;
  long long sq = sqrt((long long)pr2.size());
  for (auto i : pr2) {
    block[cnt / sq].push_back(i);
    cnt++;
  }
  for (long long i = 0; i < 500; i++) {
    if (block[i].size() >= 1) {
      long long x = qa(1);
      long long sum = 0;
      for (auto j : block[i]) {
        sum += qb(j);
      }
      long long y = qa(1);
      if (x - (long long)block[i].size() == y &&
          sum == (long long)block[i].size())
        continue;
      for (auto j : block[i]) {
        if (qa(j)) ans *= j;
      }
    }
  }
  cout << "C " << ans << '\n';
  cout.flush();
  return 0;
}
