/* Look at me! Look at me! Look at how large the monster inside me has become! */ #include<fstream> #include<iostream> #include<cstdio> #include<map> #include<set> #define FIT(a,b) for(vector<int >::iterator a=b.begin();a!=b.end();a++) #define FITP(a,b) for(vector<pair<int,int> >::iterator a=b.begin();a!=b.end();a++) #define RIT(a,b) for(vector<int>::reverse_iterator a=b.end();a!=b.begin();++a) #include<stack> #define ROF(a,b,c) for(int a=b;a>=c;--a) #include<vector> #include<algorithm> #define FOR(a,b,c) for(int a=b;a<=c;++a) #define REP(a,b) for(register int a=0;a<b;++a) #include<cstring> #include<bitset> #include<cmath> #include<iomanip> #include<set> #define f cin #define g cout #include<queue> #define debug cerr<<"OK"; #define pii pair<int,int> #define mp make_pair #define pb push_back #define fi first #define se second #define ll long long #define ull unsigned long long #define mod 1000000007 #define N 1010 #define M 23000 #define SQR 350 #define inf 1<<30 #define div pula using namespace std; /*int dx[]={0,0,0,1,-1}; int dy[]={0,1,-1,0,0};*/ string plm; int D[N][N],C[N][N],n,k,sub,p; int main () { f>>n>>k; FOR(i,1,n) FOR(j,0,k) D[j][i]=inf; FOR(i,0,k) { D[i][1]=D[i][0]=0; C[i][1]=1; } FOR(i,1,k) FOR(j,1,n) FOR(t,1,j) { if(max(D[i-1][t-1],D[i][j-t])+1<D[i][j]) { D[i][j]=max(D[i-1][t-1],D[i][j-t])+1; C[i][j]=t; } } sub=0; while(n) { int x=C[k][n]; g<<"query "<<x+sub<<"\n"; g.flush(); f>>plm; if(plm=="broke") { --k; n=x-1; } else { n-=x; sub+=x; } } g<<"answer "<<sub+1; return 0; }