编程题
### 问题描述
给定一个无向加权图 $G(V, E)$,其中 $V$ 是图的顶点集,$E$ 是图的边集,你的任务是找到该图的次小生成树的总权值。
**定义**:
1. **生成树**:一个无环的子图,其中包含图的所有顶点和 $|V| - 1$ 条边。
2. **最小生成树**:权值和最小的生成树。
3. **次小生成树**:权值和**仅次于且不等于**最小生成树的生成树,其结构(即树的形状或组成)与最小生成树不同。
你需要计算次小生成树的权值和。
### 输入格式
第一行包含两个整数 $n$ 和 $m$,表示图中的节点数和边数。节点从 $1$ 到 $n$ 编号。
接下来的 $m$ 行,每行包含三个整数 $u$、$v$ 和 $w$,表示节点 $u$ 和节点 $v$ 之间有一条权值为 $w$ 的无向边。
### 输出格式
输出一个整数,表示次小生成树的权值。如果不存在次小生成树,则输出 $-1$。
### 样例输入
```
4 5
1 2 1
1 3 2
2 3 3
2 4 4
3 4 2
```
### 样例输出
```
6
```
### 样例说明
图中的最小生成树由边 $(1,2)$、$(1,3)$ 和 $(3,4)$ 构成,权值为 $5$。
如果去掉边 $(1,2)$ 并添加边 $(2,3)$,得到的生成树权值为 $7$。
如果去掉边 $(1,3)$ 并添加边 $(2,3)$,得到的生成树权值为 $6$。
如果去掉边 $(3,4)$ 并添加边 $(2,4)$,得到的生成树权值为 $7$。
因此,次小生成树的权值为 $6$。
### 测评数据规模
对于 $40$% 的数据,$n \leq 10$。
对于 $80$% 的数据,$n \leq 50$。
对于 $100$% 的数据,$1 \leq n \leq 100$,$n \leq m \leq 10^3$,$1 \leq w \leq 10^5$。