#2100. 精灵的家族会议

精灵的家族会议

森精灵的家族会议

森精灵是个很长寿的种族,一个森精灵家族内部往往很多代人共同生活。

这一天族长要召开家族会议,他召集自己 d 代以内的直系子孙都来参加。之后每位子孙又会召集自己 d 代内的直系子孙召开家庭内部会议。现在已知家族中的成员关系,你能求出对于每位成员所召开的会议,分别有多少名成员需要参加吗?

为了方便统计,我们设家族成员编号为 0∼n−1 ,其中族长编号为 0 。

输入格式

第一行输入两个数 n,d ,其中 n 表示族长与其直系子孙的总人数, d 表示 d 代以内的子孙需要参会; 第二行输入 n−1 个数,第 i 个数 a[i] 表示编号为 i 的成员的父辈是谁,以空格隔开;

输出格式

输出共 n 行,每行一个数,表示第 i−1 位成员(族长或其子孙)所召开的会议,需要参加的人数。

输入样例

5 1
0 0 2 2

输出样例

3
1
3
1
1

数据范围

对于 100% 的数据, 2n1000001dn10a[i]n12≤n≤100000 , 1≤d≤n−1 , 0≤a[i]≤n−1

样例解释

样例中的家族关系如图所示, d=1 ,

则族长(成员 0) 的会议有 0,1,2 ,共 3 人参加;

成员 1,3,4 的会议只有本人参加;

成员 2 的会议有 2,3,4 ,共 3 人参加。