AT_past19_k 隣接禁止
Description
頂点に $ 1 $ から $ N $ の番号がついた $ N $ 頂点の木があります。 $ i $ 番目の辺は頂点 $ u_i $ と頂点 $ v_i $ を双方向に結んでいます。また、頂点 $ i $ には整数 $ A_i $ が書かれています。
$ N $ 個の頂点から $ K $ 個の頂点を選ぶ方法であって、どの選んだ頂点も隣接しないものが存在するか判定してください。存在する場合、選んだ $ K $ 個の頂点に書かれた整数の総和の最大値を求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $ $ u_1 $ $ v_1 $ $ \vdots $ $ u_{N-1} $ $ v_{N-1} $ $ A_1 $ $ \ldots $ $ A_N $
Output Format
条件を満たす選び方が存在しない場合 `-1` を出力せよ。条件を満たす選び方が存在する場合、選んだ $ K $ 個の頂点に書かれた整数の総和の最大値を出力せよ。
Explanation/Hint
### Sample Explanation 1
頂点 $ 3 $ と頂点 $ 5 $ を選ぶのが最適です。
### Sample Explanation 3
条件を満たす選び方は存在しません。
### Constraints
- $ 2\leq N\leq 100 $
- $ 1\leq K \leq N $
- $ 1\leq u_i,v_i\leq N $
- $ 1\leq A_i \leq 100 $
- 入力されるグラフは木
- 入力される数値は全て整数