




'''simple docstring'''


from __future__ import annotations

from collections import Counter
from random import random

class     A					:







							def __init__(						self :						Optional[int]      )    ->							Dict:


														"""simple docstring"""


														_a			  =       {}







							def      __lowerCAmelCase    (						self :						Dict							,    lowerCAmelCase_ :						str      )    ->							None:


														"""simple docstring"""


														_a			  =       {}







							def      __lowerCAmelCase    (						self :						Any							,    lowerCAmelCase_ :						str							,    lowerCAmelCase_ :						str							,    lowerCAmelCase_ :						float      )    ->							None:


														"""simple docstring"""


														if nodea not in self.connections:
																					self.add_node(UpperCamelCase__      )
														if nodea not in self.connections:
																					self.add_node(UpperCamelCase__      )
														_a			  =       probability







							def      __lowerCAmelCase    (						self :						Optional[Any]      )    ->							list[str]:


														"""simple docstring"""


														return list(self.connections      )







							def      __lowerCAmelCase    (						self :						Any							,    lowerCAmelCase_ :						str      )    ->							str:


														"""simple docstring"""


														_a			  =       0
														_a			  =       random()

														for dest in self.connections[node]:
																					current_probability += self.connections[node][dest]
																					if current_probability > random_value:
																												return dest
														return ""



def 	snake_case_					(UpperCamelCase :						str				,		UpperCamelCase :						Union[str, Any]				,		UpperCamelCase :						List[Any]   ):
							_a			  =       MarkovChainGraphUndirectedUnweighted()

							for nodea, nodea, probability in transitions:
														graph.add_transition_probability(A_				,		A_				,		A_   )

							_a			  =       Counter(graph.get_nodes()   )
							_a			  =       start

							for _ in range(A_   ):
														_a			  =       graph.transition(A_   )
														visited[node] += 1

							return visited


if __name__ == "__main__":
				import doctest

				doctest.testmod()







'''simple docstring'''


def 	snake_case_					(UpperCamelCase :						int   ):





							'''simple docstring'''


							if n == 1 or not isinstance(UpperCamelCase				,		UpperCamelCase   ):
														return 0
							elif n == 2:
														return 1
							else:
														_a			  =       [0, 1]
														for i in range(2				,		n + 1   ):
																					sequence.append(sequence[i - 1] + sequence[i - 2]   )

														return sequence[n]
def 	snake_case_					(UpperCamelCase :						int   ):





							'''simple docstring'''


							_a			  =       0
							_a			  =       2

							while digits < n:
														index += 1
														_a			  =       len(str(fibonacci(UpperCamelCase   )   )   )

							return index
def 	snake_case_					(UpperCamelCase :						int = 1000   ):





							'''simple docstring'''


							return fibonacci_digits_index(UpperCamelCase   )


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

