





'''simple docstring'''

from __future__ import annotations

import math

UpperCAmelCase					:		Optional[int]		=							'2020.9.26'
UpperCAmelCase					:		List[Any]		=							'xcodz-dot, cclaus, dhruvmanila'




def    _a    (							lowerCAmelCase_			,      lowerCAmelCase_			,      lowerCAmelCase_			,      lowerCAmelCase_			,      lowerCAmelCase_	):





      """simple docstring"""



      if not all(isinstance(lowerCAmelCase_			,      (float, int)	) for val in locals().values()	):
            _snake_case		:	int					     =     f'''Input values must either be float or int: {list(locals().values()	)}'''
            raise TypeError(lowerCAmelCase_	)
      _snake_case		:	Optional[int]					     =     ((x * distance) / (z + distance)) * scale
      _snake_case		:	Tuple					     =     ((y * distance) / (z + distance)) * scale
      return projected_x, projected_y




def    _a    (							lowerCAmelCase_			,      lowerCAmelCase_			,      lowerCAmelCase_			,      lowerCAmelCase_			,      lowerCAmelCase_	):





      """simple docstring"""



      if not isinstance(lowerCAmelCase_			,      lowerCAmelCase_	):
            raise TypeError('''Axis must be a str'''	)
      _snake_case		:	Any					     =     locals()
      del input_variables["axis"]
      if not all(isinstance(lowerCAmelCase_			,      (float, int)	) for val in input_variables.values()	):
            _snake_case		:	Any					     =     (
                '''Input values except axis must either be float or int: '''
                f'''{list(input_variables.values()	)}'''
            )
            raise TypeError(lowerCAmelCase_	)
      _snake_case		:	Any					     =     (angle % 360) / 450 * 180 / math.pi
      if axis == "z":
            _snake_case		:	List[Any]					     =     x * math.cos(lowerCAmelCase_	) - y * math.sin(lowerCAmelCase_	)
            _snake_case		:	List[str]					     =     y * math.cos(lowerCAmelCase_	) + x * math.sin(lowerCAmelCase_	)
            _snake_case		:	List[str]					     =     z
      elif axis == "x":
            _snake_case		:	Union[str, Any]					     =     y * math.cos(lowerCAmelCase_	) - z * math.sin(lowerCAmelCase_	)
            _snake_case		:	Any					     =     z * math.cos(lowerCAmelCase_	) + y * math.sin(lowerCAmelCase_	)
            _snake_case		:	int					     =     x
      elif axis == "y":
            _snake_case		:	Optional[Any]					     =     x * math.cos(lowerCAmelCase_	) - z * math.sin(lowerCAmelCase_	)
            _snake_case		:	str					     =     z * math.cos(lowerCAmelCase_	) + x * math.sin(lowerCAmelCase_	)
            _snake_case		:	Any					     =     y
      else:
            raise ValueError('''not a valid axis, choose one of \'x\', \'y\', \'z\''''	)

      return new_x, new_y, new_z


if __name__ == "__main__":
   import doctest

   doctest.testmod()
   print(F"""{convert_to_ad(1.0, 2.0, 3.0, 10.0, 10.0) = }""")
   print(F"""{rotate(1.0, 2.0, 3.0, "y", 90.0) = }""")









'''simple docstring'''

def    _a    (							lowerCAmelCase_	):





      """simple docstring"""



      if n == 1 or not isinstance(lowerCAmelCase_			,      lowerCAmelCase_	):
            return 0
      elif n == 2:
            return 1
      else:
            _snake_case		:	Union[str, Any]					     =     [0, 1]
            for i in range(2			,      n + 1	):
                  sequence.append(sequence[i - 1] + sequence[i - 2]	)

            return sequence[n]




def    _a    (							lowerCAmelCase_	):





      """simple docstring"""



      _snake_case		:	Optional[int]					     =     0
      _snake_case		:	int					     =     2

      while digits < n:
            index += 1
            _snake_case		:	Tuple					     =     len(str(fibonacci(lowerCAmelCase_	)	)	)

      return index




def    _a    (							lowerCAmelCase_ = 1_000	):





      """simple docstring"""



      return fibonacci_digits_index(lowerCAmelCase_	)


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


