#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int N, K, p, buc, ap[209]; int query (int x) { if (ap[x] == 0) { string ans; cout << "query " << x << '\n'; cout.flush (); cin >> ans; if (ans == "broke") { ap[x] = 1; return 0; } ap[x] = 2; return 1; } return ap[x] - 1; } void finish (int st, int dr) { for (int i=st; i<=dr; i++) if (i == N + 1 || query (i) == 0) { cout << "answer " << i << '\n'; cout.flush (); string ans; cin >> ans; return; } } int main() { cin >> N >> K; if (K == 1) { finish (1, N + 1); return 0; } int st, dr; st = 0; dr = N; if (K > 2) { for (int i=1; i<=K - 2; i++) { int ans = query ((st + dr) / 2); if (ans == 0) dr = (st + dr) / 2 - 1; else st = (st + dr) / 2; } } N = dr - st + 1; for (int p=1; p * (p+1) / 2 <= N; p++) if (p * (p+1) / 2 <= N) buc = p; int curr = st; for (int i=buc; i>=1; i--) { int v = query (i + curr); if (v == 0) { finish (curr + 1, i + curr); return 0; } curr += i; } finish (curr + 1, N + 1); return 0; }