// https://atcoder.jp/contests/abc222/submissions/26432513 #include using namespace std; int pow(long long a,int n,int m){ long long ans=1; a%=m; while(n){ if(n%2)ans=ans*a%m; a=a*a%m; n/=2; } return (int)ans; } int inv(int a,int b){ if(a==1)return 1; return b+(1-(long long)b*inv(b%a,a))/a; } int ord(int a,int m){ a%=m; if(gcd(a,m)!=1)return -1; int sq=sqrt(m)+1; unordered_mapmp; for(long long s=a,i=1;i<=sq;i++,s=s*a%m)if(mp.find(s)==mp.end())mp[s]=i; long long g=inv(pow(a,sq,m),m),x=1; for(int k=0;k<=m/sq;k++,x=x*g%m)if(mp.find(x)!=mp.end())return sq*k+mp[x]; assert(0); } void solve(){ int m; cin >> m; if(m == 1){ cout << 1 << endl; return; } cout << ord(10,m) << endl; } int main(){ int n = 1; // cin >> n; while(n--)solve(); }