#include #define N 500050 using namespace std; struct lhy{ int x,y,next; }edge[N]; int tot,n,k,A,B,Ans,ans; int son[N],f[N][11],g[N][11]; inline void add(int x,int y) { edge[++tot].x=x;edge[tot].y=y;edge[tot].next=son[x];son[x]=tot; } void dfs(int x) { f[x][0]=1; for(int i=1;i<=k;i++)f[x][i]=0; for(int i=son[x];i;i=edge[i].next) { dfs(edge[i].y); for(int j=0;j