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 $ - 入力されるグラフは木 - 入力される数値は全て整数