cin >> n; init_isp(n); ll mul = 1, fac = 1; for (int i = 1; i <= n; ++i) fac = fac * i % p; for (int l = 1, r; l <= n; l = r + 1) { r = n / (n / l); ll fac = 1; for (int i = l; i <= r; ++i) fac = fac * i % p; mul = mul * pow_mod(fac, 2 * phi[n / l] + pp - 1) % p; } cout << pow_mod(mul * mul % p, p - 2) * pow_mod(fac, 2 * n) % p << "\n"; return0; }