import sys
import math
import bisect
import itertools
from collections import defaultdict, deque
from heapq import heappush, heappop, heapify

n = int(input())

cur = 1
for i in range(1, n):
    cur = (cur * 10) % n
    if ((cur - 1) + n) % n == 0:
        print(i)
        exit()


# mathモジュールの説明
# # 基本的な数学関数
# math.ceil(3.7)    # 切り上げ: 4
# math.floor(3.7)   # 切り捨て: 3
# math.trunc(3.7)   # 整数部分: 3
# math.fabs(-3.7)   # 絶対値: 3.7

# # 指数・対数
# math.exp(1)       # e^x
# math.log(x)       # 自然対数
# math.log10(x)     # 常用対数
# math.pow(2, 3)    # 2^3 = 8

# # 三角関数
# math.sin(x)
# math.cos(x)
# math.tan(x)
# math.degrees(x)   # ラジアン→度
# math.radians(x)   # 度→ラジアン

# # 特殊な定数
# math.pi           # π
# math.e            # 自然対数の底

# # その他
# math.gcd(a, b)    # 最大公約数
# math.lcm(a, b)    # 最小公倍数(Python 3.9以降)
# math.factorial(n) # 階乗
# math.sqrt(x)      # 平方根


# bisectモジュールの説明
# # ソート済みリストに対する二分探索
# bisect.bisect_left(a, x)   # x以上の値が最初に現れる位置
# bisect.bisect_right(a, x)  # xより大きい値が最初に現れる位置
# bisect.bisect(a, x)        # bisect_rightと同じ
# bisect.insort_left(a, x)   # ソートを保ったままxを挿入
# bisect.insort_right(a, x)  # ソートを保ったままxを挿入(同値の要素の右に)


# collectionsモジュールの説明
# # defaultdict: 存在しないキーへのアクセスでデフォルト値を返す
# d = defaultdict(int)      # デフォルト値0
# d = defaultdict(list)     # デフォルト値[]
# d = defaultdict(set)      # デフォルト値set()

# # deque: 両端キュー
# d = deque()              # 初期化
# d.append(x)              # 右端に追加
# d.appendleft(x)          # 左端に追加
# d.pop()                  # 右端から取り出し
# d.popleft()              # 左端から取り出し
# d.rotate(n)              # n回右にローテーション


# heapqモジュールの説明
# # 優先度付きキュー(最小ヒープ)
# heappush(heap, item)     # ヒープに要素を追加
# item = heappop(heap)     # 最小値の取り出し
# item = heap[0]           # 最小値の参照(削除なし)
# heapify(list)            # リストをヒープに変換