import math import sys def prime_factors(n): pf = {} x = n d = 2 while d * d <= x: while x % d == 0: pf[d] = pf.get(d, 0) + 1 x //= d d += 1 if d == 2 else 2 if x > 1: pf[x] = pf.get(x, 0) + 1 return pf def totient(n, pf): res = n for p in pf: res = res // p * (p - 1) return res def divisors_from_pf(pf): # pf: {prime:exp} divs = [1] for p, e in pf.items(): cur = [] powp = 1 for _ in range(e+1): for d in divs: cur.append(d * powp) powp *= p divs = cur return divs N = int(sys.stdin.readline().strip()) # factorize N pfN = prime_factors(N) phi = totient(N, pfN) # factorize phi to enumerate its divisors (we need sorted divisors) pf_phi = prime_factors(phi) divs = divisors_from_pf(pf_phi) divs.sort() # find multiplicative order k of 10 mod N (smallest d | phi with 10^d = 1 mod N) k = None for d in divs: if pow(10, d, N) == 1: k = d break if k is None: # 理論上あり得ないはず(gcd(10,N)=1 なら位数は存在する) raise RuntimeError("order not found") # choose t so that L = t*k >= 9, and L <= 2000 (we can choose minimal t) t = (9 + k - 1) // k L = t * k # safety check: problem guarantees a solution exists within bounds, # but let's assert L <= 2000 if L > 2000: # 理論上このケースは問題文の条件下で起きないはずですが念のため raise RuntimeError("cannot make length within [9,2000]") # 出力: L 個の '9'(これは 10^L - 1 で N の倍数かつ Iwai 数) print('9' * L)