#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; int n; int mx[18][100002]; int a[100002]; vector ans; void solve(int p, int l, int r){ if(l>=r) return; if(p==0) ans.push_back(a[l]); else ans.push_back(a[r]); if(l+1==r) return; if(a[l]=0; i--){ if(m-(1<=a[l]) continue; m-=(1<>n; for(int i=0; i>a[i]; } for(int i=0; i=0; j++){ mx[j][i]=max(mx[j-1][i], mx[j-1][i-(1<<(j-1))]); } } solve(0, 0, n-1); for(int i=n-2; i>=0; i--){ cout<0) cout<<" "; } cout<