v=[0]*900 for _ in range(10): print('?','A',flush=True) ans=int(input()) if ans<900: v[ans]+=1 p=max(v) X=-1 for i in range(900): if v[i]==p: X=i v=[0]*900 for _ in range(10): print('?','B',flush=True) ans=int(input()) if ans<900: v[ans]+=1 p=max(v) Y=-1 for i in range(900): if v[i]==p: Y=i for i in range(Y): if i%2==0: while True: print('+','A','C','B',flush=True) ans=int(input()) if ans==-1: exit() print('?','B',flush=True) ans=int(input()) a=max(1,i) if ans==a*X: break else: while True: print('+','A','B','C',flush=True) ans=int(input()) if ans==-1: exit() print('?','C',flush=True) ans=int(input()) if ans==i*X: break if Y%2==1: print('!','B',flush=True) else: print('!','C',flush=True) exit()