




import math
from decimal import Decimal, getcontext




def        __SCREAMING_SNAKE_CASE (	lowercase_ = 4_00_00_00   )							->						int:

    """simple docstring"""


    try:
        __UpperCamelCase			=    int(lowercase_   )
    except (TypeError, ValueError):
        raise TypeError('''Parameter n must be int or castable to int.'''   )
    if n <= 0:
        raise ValueError('''Parameter n must be greater than or equal to one.'''   )
    __UpperCamelCase			=    1_00
    __UpperCamelCase			=    (Decimal(5   ) ** Decimal(0.5   ) + 1) / Decimal(2   )

    __UpperCamelCase			=    (math.floor(math.log(n * (phi + 2)       ,  lowercase_   ) - 1   ) // 3) * 3 + 2
    __UpperCamelCase			=    Decimal(round(phi ** Decimal(index + 1   )   )   ) / (phi + 2)
    __UpperCamelCase			=    num // 2
    return int(lowercase_   )


if __name__ == "__main__":
 print(f"""{solution() = }""")














def       _a   (							lowerCamelCase__				)  ->      list[int]:
 if len(lowerCamelCase__				) > 1:
  lowerCamelCase_							:    Optional[Any]							=     len(lowerCamelCase__				) // 2  # Finds the middle of the array
  lowerCamelCase_							:    int							=     arr[
      :middle_length
  ]  # Creates an array of the elements in the first half.
  lowerCamelCase_							:    List[Any]							=     arr[
      middle_length:
  ]  # Creates an array of the elements in the second half.
  lowerCamelCase_							:    Optional[Any]							=     len(lowerCamelCase__				)
  lowerCamelCase_							:    Optional[Any]							=     len(lowerCamelCase__				)
  merge(lowerCamelCase__				)  # Starts sorting the left.
  merge(lowerCamelCase__				)  # Starts sorting the right
  lowerCamelCase_							:    Dict							=     0  # Left Counter
  lowerCamelCase_							:    str							=     0  # Right Counter
  lowerCamelCase_							:    Tuple							=     0  # Position Counter
  while (
      left_index < left_size and right_index < right_size
  ):  # Runs until the lowers size of the left and right are sorted.
   if left_array[left_index] < right_array[right_index]:
    lowerCamelCase_							:    Optional[int]							=     left_array[left_index]
    left_index += 1
   else:
    lowerCamelCase_							:    Union[str, Any]							=     right_array[right_index]
    right_index += 1
   index += 1
  while (
      left_index < left_size
  ):  # Adds the left over elements in the left half of the array
   lowerCamelCase_							:    Tuple							=     left_array[left_index]
   left_index += 1
   index += 1
  while (
      right_index < right_size
  ):  # Adds the left over elements in the right half of the array
   lowerCamelCase_							:    Optional[int]							=     right_array[right_index]
   right_index += 1
   index += 1
 return arr


if __name__ == "__main__":
       import doctest

       doctest.testmod()
