Coding is the closest thing we have to superpower !

3970 : 树形dp-苹果树
描述

给定一颗N个节点的树,结点从1到N编号,每个结点上有一些苹果。

现在从结点1开始,每一步可以走向相邻结点,到达某一结点后,可以收集该结点的苹果(第二次到达某结点则没有苹果可收集)。

现在最多可以走K步,问最多可以收集到多少苹果。

输入

第一行输入两个整数N(1 \le N \le 100), K(0 \le K \le 200)

第二行给出N个整数a_1, a_2, a_3, ..., a_N(0 \le a_i \le 100),表示每个结点的上的苹果。

接下来N-1行,每行两个整数x_i, y_i (1 \le x_i, y_i \le n, x_i \ne y_i), 表示x_i, y_i​之间有一条边。

输入保证是一棵树。

输出

输出最大可以收集的苹果数目。

样例

输入

2 1 
0 11
1 2

输出

11

输入

3 2
0 1 2
1 2
1 3

输出

2
标签
语言:
主题: