#include using namespace std; const int maxn=1e5+10; int a[maxn],dp[maxn],n; int work(int x,int id){ if(a[id]==0)x=0; else if(a[id]==1)x=15; else if(a[id]==2)x=15; else if(a[id]==3)x--; else if(a[id]==4)x--; else if(a[id]==5); else if(a[id]==6)x++; else if(a[id]==7)x+=3; return x; } int dfs(int x,int id,int step){ if(id>n||id<1)return step; x=work(x,id); if(x==0)return step; return max(dfs(x,id<<1,step+1),dfs(x,id<<1|1,step+1)); } signed main() { freopen("traversal.in","r",stdin); freopen("traversal.out","w",stdout); cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; cout<