
def 	SCREAMING_SNAKE_CASE__    (      __lowerCAmelCase							):

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

        return sequence[n]





def 	SCREAMING_SNAKE_CASE__    (      __lowerCAmelCase							):
    snake_case__						=				0
    snake_case__						=				2

    while digits < n:
        index += 1
        snake_case__						=				len(str(fibonacci(lowerCamelCase_							)							)							)

    return index





def 	SCREAMING_SNAKE_CASE__    (      __lowerCAmelCase = 1_000							):
    return fibonacci_digits_index(lowerCamelCase_							)


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


from __future__ import annotations





def 	SCREAMING_SNAKE_CASE__    (      __lowerCAmelCase    ,		__lowerCAmelCase							):
    snake_case__						,					snake_case__						=				set(__lowerCAmelCase							), [start]

    while stack:
        snake_case__						=				stack.pop()
        explored.add(__lowerCAmelCase							)
        # Differences from BFS:
        # 1) pop last element instead of first one
        # 2) add adjacent elements to stack without exploring them
        for adj in reversed(graph[v]							):
            if adj not in explored:
                stack.append(__lowerCAmelCase							)
    return explored


__magic_name__            =  {
    '''A''': ['''B''', '''C''', '''D'''],
    '''B''': ['''A''', '''D''', '''E'''],
    '''C''': ['''A''', '''F'''],
    '''D''': ['''B''', '''D'''],
    '''E''': ['''B''', '''F'''],
    '''F''': ['''C''', '''E''', '''G'''],
    '''G''': ['''F'''],
}

if __name__ == "__main__":
     import doctest

     doctest.testmod()
     print(depth_first_search(G, '''A'''))



