#include using namespace std; #if __has_include("all.hpp") #include "all.hpp" #else #include #endif using namespace atcoder; long long op(long long a, long long b) { return a+b; } long long e() { return 0; } int target; bool f(long long v) { return v < target; } int main(void){ int n; cin>>n; vectorar(n,0); for(int i=0;i>a; if(a==-1)return 1; ar[i]=a; } vectorans(n); segtree seg(vector(n,1)); for(int i=n-1;i>0;i--){ int tmp=ar[i]-ar[i-1]; target=tmp+1; int index=seg.min_left(n); ans[i]=index; seg.set(index-1,0); } target=1; int index=seg.min_left(n); ans[0]=index; cout<<"! "; for(int i=0;i