#include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int N; cin >> N; set> S; vector L(N,-1),R(N,-1); vector A(N); int maxa = -1,mpos = -1; for(int i=0; i> a; A.at(i) = a; if(i == 0) S = {{1,a,0},{a+1,N,0}}; else{ auto [l,r,par] = *(--S.upper_bound({a+1,-1,-1})); S.erase({l,r,par}); S.insert({l,a,i}),S.insert({a+1,r,i}); if(A.at(par) < a) R.at(par) = i; else L.at(par) = i; } if(maxa < a) maxa = a,mpos = i; } vector B(N),C(N); auto dfs = [&](auto dfs,int pos,int dep) -> int { if(pos == -1) return 0; int ret = dfs(dfs,L.at(pos),dep+1)+dfs(dfs,R.at(pos),dep+1); B.at(pos) = dep,C.at(pos) = ret; return ret+1; }; dfs(dfs,0,0); for(auto b : B) cout << b << " "; cout << endl; for(auto b : C) cout << b << " "; cout << endl; }