//interactive ll@n,a[n],b[n]; if(n==1){ wt("! 1 1"); exit(0); } rep(i,1,n+1){ wt("?",i,i); ll@x; if(x>1){ ll f=Factor(x,a); x=a[f-1]; if(x*2>n){ wt("?",i,i+1); ll@y; if(y%x==0){ //a[i] is large prime ll o=0; rep(j,1,n+1){ wt("?",i,j); ll@z; if(z==x){ wt("?",i+1,j); ll@w; if(w%x==0){ b[j-1]=x; }else{ b[j-1]=1; o=j; } }else{ b[j-1]=z/x; } } rep(j,1,n+1){ wt("?",j,o); rd(a[j-1]); } }else{ //b[i] is large prime ll o=0; rep(j,1,n+1){ wt("?",j,i); ll@z; if(z==x){ wt("?",j,i+1); ll@w; if(w%x==0){ a[j-1]=x; }else{ a[j-1]=1; o=j; } }else{ a[j-1]=z/x; } } rep(j,1,n+1){ wt("?",o,j); rd(b[j-1]); } } wt("!",a(n),b(n)); exit(0); } } }