Compute 有一棵 n 个点,编号分别为

的树,其中 s 号点为根。
Compute 在树上养了很多松鼠,在第 i 个点上住了

个松鼠。
因为某些缘故,它们开始同时向根节点移动,但它们相当不安分,如果在同一个节点上,它们就会打起来,简单地来说以下事件会依序发生:
- 如果一个节点上有 2 只或 2 只以上的松鼠,他们会打架,然后这个节点上松鼠的数量会减少 1;
- 根节点的所有松鼠移动到地面,位于地面上的松鼠不会再打架;
- 所有松鼠同时朝它们的父节点移动。
所有事件各自都在一瞬间完成,直至树上没有松鼠。
现在 Compute 想知道最终有多少只松鼠到达了地面。
输入描述:
第一行包含两个整数 n, s (
,
),中间以空格分隔,分别表示点的数量和根的编号。
第二行包含 n 个整数
(
),中间以空格分隔,分别表示每个点上一开始的松鼠数量。
接下来 n-1 行,每行包含两个整数 u, v (

,

),中间以空格分隔,表示 u 和 v 之间有一条边。
输入保证是一棵树。
输出描述:
在一行输出一个整数,表示最终到达地面的松鼠数量。