Description
有 N 个农民, 他们住在 N 个不同的村子里. 这 N 个村子形成一棵树.
每个农民初始时获得 X 的钱.
每一次操作, 一个农民可以从它自己的钱中, 取出任意数量的钱, 交给某个相邻村子的农民.
对于每个农民给定一个值 v_i, 求
(1) 最少需要多少次操作, 使得每个农民最终拿到的钱 >= 给定的值.
Input
第1行: 一个整数 N (1 <= N <= 2000)
第2行: 一个整数 X (0 <= X <= 10000)
第3行: N 个整数, 表示 v_i. 保证所有 v_i 的和 <= N * X
第4..N+2行: 每行两个 1..N 的数, 表示树上的一条边. 边是双向的.
Output
第1行: 一个整数, 最少需要的操作次数
Sample Input
615
10 20 18 16 6 16
1 4
4 5
4 6
6 2
5 3