#2345. 交换位置(swap)

交换位置(swap)

Description

现在有一个序列 aa 的长度为 n,一开始a[i]=i(1≤i≤n),现在有m次操作,每个操作的格式是这样的:x y表示把当前的a[x]与a[y]交换。我们把这m次操作叫做一轮操作,现在问,在经过多少轮操作之后,序列a又会回到原来的样子(原来的样子就是指a[i]=i(1≤i≤n))


Input Format

第一行,两个整数n,m,n表示a的长度,m表示操作数
接下来m行,每行一个操作x y,表示把当前的a[x]与a[y]交换。保证(1≤x,y≤n)

Output Format

只有一个数,表示在经过多少轮之后
4 4
1 4
3 4
2 3
1 4
3

Hint

【样例1解释】
初始 1 2 3 4
1 4 : 4 2 3 1
3 4:4 2 1 3
2 3:4 1 2 3
14:3 1 2 4
第一轮操作之后
a[1]=3,a[2]=1,a[3]=2,a[4]=4
第二轮操作之后
a[1]=2,a[2]=3,a[3]=1,a[4]=4
第三轮操作之后
a[1]=1,a[2]=2,a[3]=3,a[4]=4
任务完成


【样例输入 2】
5 3
1 2
2 3
4 5
【样例输出 2】
6
【数据范围】
50%数据保证 1≤n,m≤1000,答案小于等于 1000
100%数据保证 1≤n,m≤50000,答案小于等于 10^18