#include #include #include using namespace std; bool isOrdered(const vector& positions) { for (size_t i = 0; i < positions.size(); ++i) { if (positions[i] != i) { return false; } } return true; } int main() { int n, k; cin >> n >> k; vector x(k), y(k); for (int i = 0; i < k; ++i) { cin >> x[i] >> y[i]; } vector positions(n); for (int i = 0; i < n; ++i) { positions[i] = i; } for (int i = 0; i < k; ++i) { swap(positions[x[i] - 1], positions[y[i] - 1]); } int result = 1; vector values(positions); vector newValues(n); while (!isOrdered(values)) { for (int i = 0; i < n; ++i) { newValues[i] = values[positions[i]]; } values = newValues; ++result; } cout << result << endl; return 0; }