


"""simple docstring"""
from functools import lru_cache







@lru_cache
def     _a					(   _SCREAMING_SNAKE_CASE					)     ->					int:
							if not isinstance(SCREAMING_SNAKE_CASE__					,			SCREAMING_SNAKE_CASE__					):
														raise TypeError("""k must be an integer."""					)
							if k < 0:
														raise ValueError("""k integer must be greater or equal to zero."""					)
							if k == 0:
														return 0
							elif k == 1:
														return 1
							else:
														return fibonacci(k - 1					) + fibonacci(k - 2					)







def     _a					(   _SCREAMING_SNAKE_CASE					,			_SCREAMING_SNAKE_CASE					)     ->					int:
							snake_case_     							=		len(SCREAMING_SNAKE_CASE__					)
							# Find m such that F_m >= n where F_i is the i_th fibonacci number.
							snake_case_     							=		0
							while True:
														if fibonacci(SCREAMING_SNAKE_CASE__					) >= len_list:
																					snake_case_     							=		i
																					break
														i += 1
							snake_case_     							=		0
							while fibb_k > 0:
														snake_case_     							=		min(
														    offset + fibonacci(fibb_k - 1					)					,			len_list - 1					)  # Prevent out of range
														snake_case_     							=		arr[index_k]
														if item_k_1 == val:
																					return index_k
														elif val < item_k_1:
																					fibb_k -= 1
														elif val > item_k_1:
																					offset += fibonacci(fibb_k - 1					)
																					fibb_k -= 2
							else:
														return -1


if __name__ == "__main__":
				import doctest

				doctest.testmod()










from functools import lru_cache







@lru_cache
def      A__				(       SCREAMING_SNAKE_CASE__)  ->       int:
  if not isinstance(SCREAMING_SNAKE_CASE__   ,   SCREAMING_SNAKE_CASE__):
    raise TypeError("""k must be an integer.""")
  if k < 0:
    raise ValueError("""k integer must be greater or equal to zero.""")
  if k == 0:
    return 0
  elif k == 1:
    return 1
  else:
    return fibonacci(k - 1) + fibonacci(k - 2)







def      A__				(       SCREAMING_SNAKE_CASE__   ,   SCREAMING_SNAKE_CASE__)  ->       int:
  __snake_case:		str					    =		len(SCREAMING_SNAKE_CASE__)
  # Find m such that F_m >= n where F_i is the i_th fibonacci number.
  __snake_case:		Optional[int]					    =		0
  while True:
    if fibonacci(SCREAMING_SNAKE_CASE__) >= len_list:
      __snake_case:		str					    =		i
      break
    i += 1
  __snake_case:		Tuple					    =		0
  while fibb_k > 0:
    __snake_case:		str					    =		min(
        offset + fibonacci(fibb_k - 1)   ,   len_list - 1)  # Prevent out of range
    __snake_case:		List[Any]					    =		arr[index_k]
    if item_k_1 == val:
      return index_k
    elif val < item_k_1:
      fibb_k -= 1
    elif val > item_k_1:
      offset += fibonacci(fibb_k - 1)
      fibb_k -= 2
  else:
    return -1


if __name__ == "__main__":
      import doctest

      doctest.testmod()






