
"""simple docstring"""







def     __lowerCAmelCase				(_UpperCamelCase = 1000		):
	__lowerCAmelCase			,   __lowerCAmelCase			:						Optional[int]									=      1, 1
	__lowerCAmelCase			:						int									=      2
	while True:
		__lowerCAmelCase			:						Optional[int]									=      0
		__lowerCAmelCase			:						List[str]									=      fa + fa
		__lowerCAmelCase			,   __lowerCAmelCase			:						Optional[Any]									=      fa, f
		index += 1
		for _ in str(_UpperCamelCase		):
			i += 1
		if i == n:
			break
	return index


if __name__ == "__main__":
							print(solution(int(str(input()).strip())))

from collections import defaultdict

from graphs.minimum_spanning_tree_prims import prisms_algorithm as mst





def 			lowerCamelCase_ (				):
				lowerCamelCase_	,    lowerCamelCase_						=			9, 1_4  # noqa: F841
				lowerCamelCase_						=			[
				    [0, 1, 4],
				    [0, 7, 8],
				    [1, 2, 8],
				    [7, 8, 7],
				    [7, 6, 1],
				    [2, 8, 2],
				    [8, 6, 6],
				    [2, 3, 7],
				    [2, 5, 4],
				    [6, 5, 2],
				    [3, 5, 1_4],
				    [3, 4, 9],
				    [5, 4, 1_0],
				    [1, 7, 1_1],
				]

				lowerCamelCase_						=			defaultdict(lowerCamelCase__    )
				for nodea, nodea, cost in edges:
								adjancency[nodea].append([nodea, cost]    )
								adjancency[nodea].append([nodea, cost]    )

				lowerCamelCase_						=			mst(lowerCamelCase__    )

				lowerCamelCase_						=			[
				    [7, 6, 1],
				    [2, 8, 2],
				    [6, 5, 2],
				    [0, 1, 4],
				    [2, 5, 4],
				    [2, 3, 7],
				    [0, 7, 8],
				    [3, 4, 9],
				]

				for answer in expected:
								lowerCamelCase_						=			tuple(answer[:2]    )
								lowerCamelCase_						=			tuple(edge[::-1]    )
								assert edge in result or reverse in result


