#include #include #include int n; int k2(int er) { int i,k2k=1; for(i=1;i<=er;i++) k2k=k2k*2; return(k2k); } void keres(int al,int fel,int meny) { char s[100]={'0'}; int x,k=meny; if(meny==1) { x=al; while(s[0]!='b') { printf("query %d\n",x); fflush(stdout); gets(s); x++; } printf("answer %d\n",x-1); fflush(stdout); gets(s); return(0); } else if(k2(meny)>=fel-al+1) //binaris kereses ha van eleg tojasunk { x=((fel+al)/2)+1; while(s[0]!='e') { printf("query %d\n",x); fflush(stdout); gets(s); if(s[0]=='b') { k--; fel=x; if(k==1) { keres(al,fel,1); return(0); } } else if(s[0]=='s') { al=x+1; } else if(s[0]=='e') return(0); if(al==fel) { printf("answer %d\n",fel); fflush(stdout); gets(s); } x=((fel+al)/2); } } else //ha nincs eleg tojasunk if(k!=2) { int i=1,lep=k2(meny-1); while(s[0]!='b') { x=lep*i; if(x>n)x=n; if(x>=al) { printf("query %d\n",x); fflush(stdout); gets(s); if(s[0]=='b') al=x-lep+1; } i++; } fel=x; keres(al,fel,meny-1); return(0); } else { int i=1,lep=2; while(s[0]!='b') { x=lep*i; if(x>n)x=n; printf("query %d\n",x); fflush(stdout); gets(s); if(s[0]=='b') al=x-lep+1; i++; } fel=x; printf("query %d\n",al); fflush(stdout); gets(s); if(s[0]=='b') x=al; else x=fel; printf("answer %d\n",x); fflush(stdout); gets(s); return(0); } return(0); } int main() { int k; char s1[100]={'0'}; scanf("%d%d",&n,&k); gets(s1); keres(1,n,k); return(0); }