#679. Coci2009 [podjela]

Coci2009 [podjela]

Description

有 N 个农民, 他们住在 N 个不同的村子里. 这 N 个村子形成一棵树. 每个农民初始时获得 X 的钱. 每一次操作, 一个农民可以从它自己的钱中, 取出任意数量的钱, 交给某个相邻村子的农民.

对于每个农民给定一个值 v_i, 求 (1) 最少需要多少次操作, 使得每个农民最终拿到的钱 >= 给定的值.

Format

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行: 一个整数, 最少需要的操作次数

Samples

6
15
10 20 18 16 6 16
1 4
4 5
4 6
6 2
5 3
5