#ifndef ONLINE_JUDGE #define _GLIBCXX_DEBUG #endif #include #include using namespace std; using ll=long long; using ld=long double; using st=string; using P=pair; typedef atcoder::modint mint; ll inf=9e18; template auto vec(const ll (&sizes)[s], const T& init = T()){ if constexpr(i < s) return vector(sizes[i], vec(sizes, init)); else return init; } int main(){ ll p,x; cin>>p; auto v=vec({p},0); auto w=vec({p},0); auto v2=vec({p},0); auto w2=vec({p},0); for(ll i=0;i>x; v[i]=(x-1)%p+1; w[i]=x/p; v2[x%p]=1; w2[x/p]=1; } for(ll i=0;i>x; cout<<"! \n"; if(x%p==v[0]){ for(ll i=0;i