import math # 数学ライブラリ(最大公約数(greatest common divisor, gcd))のため n = int(input()) # 合成数 n を取得 def check(v): # 出力チェック関数 g = math.gcd(v, n) if g > 2 and g < n: print("!", g, n//g) exit() check(3) # 3の素因数をチェック for a in range(2, n-1): # a = {2,3,4,...,n-2} check(a) # 質問前にaをチェック print("?", a) # 位数を質問 r = int(input()) # 位数の回答 if r&1 == 0: # if r is even: r >>= 1 for b in range(99): # b = {0,1,2,...,98} check(pow(a+b, r, n)-1) # pow(a + b, r) % n - 1