def O(*a):print(*a,flush=True) I=input N=num=1;num+=1 O('a',N,'r',N);one=num;num+=1 #1 O('a',one,'+',one);two=num;num+=1 #2 O('a',two,'+',one);three=num;num+=1 #3 O('a',two,'r',N);rN=num;num+=1 #floor(sqrt(N)) O('a',rN,'*',rN);rN2=num;num+=1 #floor(sqrt(N))^2 D=50 loop=17 square_query=[0]*D decision_query=[0]*D R=range(D) for r in R: t=[rN,num-loop][r>0] #t:=floor(sqrt(N))+r O('a',t,'+',one); t=num;num+=1 #t:=floor(sqrt(N))+r O('a',t,'*',t); t2=num;num+=1 #t^2 O('a',t2,'-',N); t2mN=num;num+=1 #t^2-N O('a',two,'r',t2mN); rt2mN=num;num+=1 #floor(sqrt(t^2-N)) O('a',rt2mN,'*',rt2mN); rt2mN2=num;num+=1 #floor(sqrt(t^2-N))^2 O('a',t,'-',rt2mN); d=num;num+=1 #d:=t-floor(sqrt(t^2-N)) O('a',d,'*',d); d2=num;num+=1 #d^2 O('a',d2,'*',d); d3=num;num+=1 #d^3 O('a',three,'*',d2); threed2=num;num+=1 #3d^2 O('a',threed2,'+',N); Npthreed2=num;num+=1 #N+3d^2 O('a',Npthreed2,'*',Npthreed2); Npthreed22=num;num+=1 #(N+3d^2)^2 O('a',Npthreed22,'*',N); Npthreed22N=num;num+=1 #(N+3d^2)^2*N O('a',three,'*',d); threed=num;num+=1 #3d O('a',threed,'+',one); threedp1=num;num+=1 #3d+1 O('a',threedp1,'*',N); threedp1N=num;num+=1 #(3d+1)*N O('a',threedp1N,'+',d3); threedp1Npd3=num;num+=1 #(3d+1)*N+d^3 O('a',threedp1Npd3,'*',threedp1Npd3); threedp1Npd32=num;num+=1 #((3d+1)*N+d^3)^2 square_query[r]=[rt2mN2,t2mN] decision_query[r]=[threedp1Npd32,Npthreed22N] O('?',rN2,'<',N) #floor(sqrt(t^2-N))^2'F'::2])) O("! No")