//interactive ll@N,P=N,t,Q[2],L=0,A[2][N+1];if(N<2)wt("! 1 1");else{while(!isPrime(P))P--;rep(i,1,N+1){wt("?",i,i);rd(t);if(t%P<1)Q[L++]=i;}if(L<2)Q[1]=*Q;else{wt("?",*Q,Q[1]);rd(t);if(t%P)swap(Q[0],Q[1]);}rep(n,2)rep(i,1,N+1){if(i==Q[n])t=P*P;else{wt("?",n?Q[0]:i,n?i:Q[1]);rd(t);}A[n][i]=t/P;}wtSp("!");rep(n,2)rep(i,N)wtSp(A[n][i+1]);}