有 N 个城市按照编号 1 \sim N 的顺序从左向右排列在一条直线,由 N - 1 条双向铁路连接。相邻的 2 个城市之间通过铁路连接。
某天爆发了战争,城市之间因为立场不同决定终止连通,共有 M 个来自城市的请求。
请求 U_i, V_i 表示编号为 U_i 的城市和编号为 V_i 的城市之间发生了战争,请通过移除一些铁路来实现:使得这两个城市之间的无法连通。
请你编程计算出,最少需要移除多少段铁路,才能满足 M 个请求。
第一行读入两个整数 N 和 M,用空格隔开。
接下来 M 行,每行包含两个整数,表示第 U_i 和 V_i 城市之间希望终止连通。
输出最少需要断开的铁路数量。
5 2 1 4 2 5
1
9 5 1 8 2 7 3 5 4 6 7 9
2
9 24 6 8 3 8 1 3 5 6 3 5 1 7 1 8 2 4 8 9 3 7 1 2 6 7 5 9 2 9 4 6 2 3 4 8 1 4 6 9 2 5 2 8 7 9 3 6 5 8
6
这些请求可以通过拆除连接编号为 2 的城市和编号为 3 的城市之间的铁路来满足。
对于 25\% 的数据,满足 2 \leq N \leq 20,1 \leq M \leq 200。
对于 100\% 的数据,满足 2 \leq N \leq 10^5 , 1 \leq M \leq 10^5 , 1 \leq U_i < V_i \leq N ,所有 (U_i, V_i) 互不相同。