#include using namespace std; typedef long long ll; #include using namespace atcoder; #include typedef boost::multiprecision::cpp_int bint; int main(){ bint N; cin >> N; auto euler_phi = [](bint n) { bint ret = n; for(bint i = 2; i * i <= n; i++) { if(n % i == 0) { ret -= ret / i; while(n % i == 0) n /= i; } } if(n > 1) ret -= ret / n; return ret; }; bint e = euler_phi(N); vector todo; for (int i = 1; i * i <= e; i++) { if(e % i == 0){ todo.push_back(i); if(e != i * i){ todo.push_back(e / i); } } } ranges::sort(todo); for(bint v : todo){ if(pow_mod(10, (ll)v, (ll)N) == 1){ cout << v << '\n'; break; } } return 0; } /* File : ~/yukicoder/528/B.cpp Date : 2025/02/21 Time : 21:36:29 */