#include #define rep(i,n) for(int i=0;i<(n);i++) using namespace std; using graph=vector>; void add_edge(graph& G,int u,int v){ G[u].emplace_back(v); G[v].emplace_back(u); } int idx; vector ans; void dfs(const graph& T,int u,int p){ int l=-1,r=-1; for(int v:T[u]) if(v!=p) { if (l==-1) l=v; else if(r==-1) r=v; } if(l!=-1) dfs(T,l,u); ans[u]=idx++; if(r!=-1) dfs(T,r,u); } int main(){ int k; scanf("%d",&k); int n=(1<