

from collections.abc import Generator

def 							__SCREAMING_SNAKE_CASE							(			)				->    Generator[int, None, None]:
				_UpperCAmelCase						,							_UpperCAmelCase    :						List[Any]							=      0, 1
				while True:
								_UpperCAmelCase						,							_UpperCAmelCase    :						Dict							=      b, a + b
								yield b

def 							__SCREAMING_SNAKE_CASE							(			lowerCAmelCase:					int = 1000	)				->    int:
				_UpperCAmelCase    :						Union[str, Any]							=      1
				_UpperCAmelCase    :						Optional[int]							=      fibonacci_generator()
				while len(str(next(lowerCAmelCase	)	)	) < n:
								answer += 1
				return answer + 1


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





from __future__ import annotations

from random import choice

def 							__SCREAMING_SNAKE_CASE							(			lowerCAmelCase:					Any	)				->    Optional[int]:
				return choice(lowerCAmelCase	)

def 							__SCREAMING_SNAKE_CASE							(			lowerCAmelCase:					list[int]					, lowerCAmelCase:					int	)				->    int:
				_UpperCAmelCase    :						List[Any]							=      random_pivot(lowerCAmelCase	)

				# partition based on pivot
				# linear time
				_UpperCAmelCase    :						List[str]							=      [e for e in lst if e < pivot]
				_UpperCAmelCase    :						Any							=      [e for e in lst if e > pivot]

				# if we get lucky, pivot might be the element we want.
				# we can easily see this:
				# small (elements smaller than k)
				# + pivot (kth element)
				# + big (elements larger than k)
				if len(lowerCAmelCase	) == k - 1:
								return pivot
				# pivot is in elements bigger than k
				elif len(lowerCAmelCase	) < k - 1:
								return kth_number(lowerCAmelCase					, k - len(lowerCAmelCase	) - 1	)
				# pivot is in elements smaller than k
				else:
								return kth_number(lowerCAmelCase					, lowerCAmelCase	)


if __name__ == "__main__":
					import doctest

					doctest.testmod()


