编程题
### 问题描述
在奇幻世界中,有 $n$ 个魔法王国,它们分布在大陆的各个角落。这些王国由 $n-1$ 条魔法之路相互连接,形成了一个庞大的魔法网络。每个王国都有自己的特色和价值。
你是一位魔法师,受命于盖亚女神,要对这些王国进行评分。你可以给每个王国打一个分数,分数只能是 $0$ 或者 $1$。然而,盖亚女神有一项特殊的要求:那些只与一个王国相连的王国必须评分为 $0$ 的数量和评分为 $1$ 的数量要相等,以维持魔法平衡。
在你完成评分后,相邻的两个王国如果分数不同,就需要施展魔法,消除它们之间的不和谐。每次施展魔法的代价都是 $w$。你的目标是使得符合盖亚女神要求的评分方案,并且要计算出处理不和谐王国所需的最小花费。
如果无法找到满足要求的评分方案,则输出 `-1`。
### 输入格式
第一行输入两个整数 $n$ 和 $w$,表示魔法王国的数量和施展魔法的代价。保证 $1 \leq n, w \leq 1000$。
接下来 $n-1$ 行,每行输入两个整数 $u_i$ 和 $v_i$,表示相连的两个王国的编号。保证 $1 \leq u_i, v_i \leq n$。
### 输出格式
输出一个整数,表示满足要求的评分方案下处理不和谐王国所需的最小花费。如果无法找到满足要求的评分方案,则输出 `-1`。
### 样例输入
```
3 3
1 2
2 3
```
### 样例输出
```
3
```