#P10338. 傅里叶与仙人掌

傅里叶与仙人掌

题目背景

达尔文来到了加拉帕戈斯,在那里他发现了一种新的仙人掌。

  • 此处仙人掌的定义:每条边最多属于一个环的简单无向图

不同于旧大陆的那些仙人掌,这株来自于新大陆的仙人掌看上去要更加绚丽多彩——其每条边都有一种颜色。

达尔文十分兴奋,将这株仙人掌送给了他的朋友傅里叶。

题目描述

傅里叶收到了达尔文的仙人掌,十分开心。

但是,傅里叶是个崇尚简洁的人,他觉得仙人掌的边太多,非常不美观。于是,他决定砍掉仙人掌上一些边,使得图中不存在环。

“达尔文酱听到这个消息一定会很难过的,”傅里叶自言自语道,“那我应该在砍掉最小数量的边的前提下,保留尽可能多的颜色种类,说不定达尔文酱就不会发现它已经被我剪过了呢!”

输入格式

第一行两个正整数 n,mn,m 表示仙人掌节点数与边数。

接下来 mm 行每行三个正整数 x,y,cx,y,c,表示有一条无向边 (x,y)(x,y),颜色为 cc

输出格式

一行一个整数,表示最多剩余的颜色数。

样例1

Input

4 4
1 2 4
2 3 1
3 4 2
4 2 3

Output

3

样例2

Input

7 9
1 2 1
2 3 4
3 1 5
1 4 5
4 5 2
5 1 6
1 6 4
6 7 6
7 1 3

Output

6

样例3

见大样例包中 cactus.in/cactus.out

数据范围

  • Subtask #1(10%10\%n10n\leq10
  • Subtask #2(10%10\%n300n\leq300。此部分分依赖 1 档。
  • Subtask #3(10%10\%n1000n\leq1000。此部分分依赖 2 档。
  • Subtask #4(10%10\%n10000n\leq10000。此部分分依赖 3 档。
  • Subtask #5(10%10\%)保证存在一种策略,使得删去至多 1010 条边后图中不存在环。此部分分依赖 1 档,因为显然 1 档中任一数据均满足 5 档中限制。
  • Subtask #6(50%50\%)无特殊限制。此部分分依赖 4,5 档。
  • 对于全部数据,n2×105,c109+7n\leq2\times10^5,c\leq 10^9+7。保证图构成一符合题面中定义的仙人掌。