1736 年,莱昂哈德·欧拉(Leonhard Euler)撰写了关于柯尼斯堡七桥问题的论文,这被认为是图论史上的第一篇论文。如今,图论的研究被认为非常重要,大多数离散数学教科书都有关于图论的章节。
本题与图论有关,特别是树和森林。给定 $N$ 个元组 $(u_i, v_i, w_i)$,你的任务是构建一个森林,使其包含最少数量的树,并满足以下七个要求:
- 森林中的每棵树都是有根树;
- 森林中的每个节点 $x$ 都有一个值 $x.A$;
- 森林中的每条边 $(x, y)$ 都有一个值 $(x, y).B$;
- 每个元组 $(u_i, v_i, w_i)$ 在森林中作为一对父子关系(父节点 $p$ 和子节点 $c$)恰好出现一次,其中:$u_i = p.A$,$v_i = c.A$,且 $w_i = (p, c).B$;
- 对于森林中任何非根且非叶的节点 $x$,$(p, x).B$ 小于任何 $(x, c).B$,其中 $p$ 是 $x$ 的父节点,$c$ 是 $x$ 的子节点;
- 森林中所有节点的子节点数量最多为 $M$ 个;
- 森林应恰好包含 $N$ 条边。
为了简化问题,保证任何元组中的 $w_i$ 都是唯一的,即没有两个元组具有相同的 $w_i$。
输出满足上述要求的森林中树的数量(该森林应具有最少数量的树)。
输入格式
第一行包含两个整数 $N$ 和 $M$ ($1 \le N, M \le 100,000$),表示元组的数量和森林中每个节点允许的最大子节点数。接下来的 $N$ 行,每行包含三个整数 $u_i, v_i, w_i$ ($1 \le u_i, v_i \le 2,000,000,000$; $1 \le w_i \le N$),表示元组 $(u_i, v_i, w_i)$。保证不会有两个元组具有相同的 $w_i$。
输出格式
输出一行,包含一个整数,表示满足给定要求的森林中树的最少数量。
样例
样例输入 1
5 2 2 4 3 4 4 5 4 7 1 7 2 4 4 8 2
样例输出 1
2
样例输入 2
5 1 2 4 3 4 4 5 4 7 1 7 2 4 4 8 2
样例输出 2
3
样例输入 3
5 10 1000 3000 3 2000 4000 5 1000 2000 1 3000 2000 4 2000 3000 2
样例输出 3
1
说明
对于第一个样例,该森林是唯一满足所有要求的森林。该森林中有 2 棵树。
另一方面,以下森林不满足要求,原因如下:
- 节点 $b$ 违反了要求 #5,因为 $(a, b).B = 3$ 大于 $(b, c).B = 1$ 和 $(b, d).B = 2$。
- 节点 $b$ 违反了要求 #6,因为它有 3 个子节点(注意 $M$ 为 2)。
- 森林中有 6 条边,而 $N = 5$(违反了要求 #7)。
注意,违反其中任何一个要求都会使森林无效。