#include "bits/stdc++.h" using namespace std; int unidp[100]; int findunidp(int a){ if (unidp[a] < 0) return a; else return unidp[a] = findunidp(unidp[a]); } bool connect(int a, int b){ a = findunidp(a); b = findunidp(b); if (a == b) return false; unidp[a] += unidp[b]; unidp[b] = a; return true; } long long gcd(long long a, long long b){ if (b == 0) return a; return gcd(b, a%b); } int main(){ int N, K; cin >> N >> K; vector V(N); for (int i = 0; i < N; i++) { V[i] = i; unidp[i] = -1; } for (int i = 0; i < K; i++) { int X, Y; cin >> X >> Y; swap(V[X - 1], V[Y - 1]); } for (int i = 0; i < N; i++) { connect(i, V[i]); } long long ans = 1; for (int i = 0; i < N; i++) { long long loop = -unidp[findunidp(i)]; auto g = gcd(loop, ans); ans *= loop; ans /= g; } cout << ans << endl; }