#include using namespace std; int n,K,T,tot,ans; int fa[100005],cur[100005],dep[100005],a[100005],p[100005]; int point[200005],nxt[200005],head[200005]; void init() { ans=tot=0; for(int i=1;i<=n;i++) dep[i]=head[i]=cur[i]=0; } void addedge(int x,int y) { point[++tot]=y,nxt[tot]=head[x],head[x]=tot; } void dfs(int x) { for(int i=head[x];i;i=nxt[i]) { int y=point[i]; dep[y]=dep[x]+1; dfs(y); } } bool cmp(int x,int y) { return dep[x]=1;i--) { int x=p[i]; if(a[x]&&cur[x]&&x>1) a[fa[x]]+=a[x],cur[fa[x]]=min(cur[fa[x]],cur[x]-1),a[x]=0; } for(int i=1;i<=n;i++) ans+=(a[i]>0); printf("%d\n",ans); } return 0; }