

def     a__  (	UpperCAmelCase							:    int = 998_001    )						->		int:
  UpperCAmelCase :							List[Any]								=				0
  for i in range(999       ,				99       ,				-1    ):  # 3 digit numbers range from 999 down to 100
    for j in range(999       ,				99       ,				-1    ):
      UpperCAmelCase :							Any								=				str(i * j    )
      if product_string == product_string[::-1] and i * j < n:
        UpperCAmelCase :							Optional[int]								=				max(UpperCAmelCase       ,				i * j    )
  return answer


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








from functools import lru_cache

@lru_cache
def     a__  (	UpperCAmelCase							:    int    )						->		int:
  if not isinstance(UpperCAmelCase       ,				UpperCAmelCase    ):
    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__  (	UpperCAmelCase							:    list       ,				UpperCAmelCase							:    int    )						->		int:
  UpperCAmelCase :							List[str]								=				len(UpperCAmelCase    )
  # Find m such that F_m >= n where F_i is the i_th fibonacci number.
  UpperCAmelCase :							Any								=				0
  while True:
    if fibonacci(UpperCAmelCase    ) >= len_list:
      UpperCAmelCase :							Optional[Any]								=				i
      break
    i += 1
  UpperCAmelCase :							List[Any]								=				0
  while fibb_k > 0:
    UpperCAmelCase :							List[str]								=				min(
        offset + fibonacci(fibb_k - 1    )       ,				len_list - 1    )  # Prevent out of range
    UpperCAmelCase :							Optional[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()





