

def     __SCREAMING_SNAKE_CASE   (SCREAMING_SNAKE_CASE__    ,						SCREAMING_SNAKE_CASE__			):
						while a != 0:
												snake_case_,       snake_case_  =      b % a, a
						return b


def     __SCREAMING_SNAKE_CASE   (SCREAMING_SNAKE_CASE__    ,						SCREAMING_SNAKE_CASE__			):
						if gcd(SCREAMING_SNAKE_CASE__    ,						SCREAMING_SNAKE_CASE__			) != 1:
												snake_case_  =      F'''mod inverse of {a!r} and {m!r} does not exist'''
												raise ValueError(SCREAMING_SNAKE_CASE__			)
						snake_case_,       snake_case_,       snake_case_  =      1, 0, a
						snake_case_,       snake_case_,       snake_case_  =      0, 1, m
						while va != 0:
												snake_case_  =      ua // va
												snake_case_,       snake_case_,       snake_case_,       snake_case_,       snake_case_,       snake_case_  =      (ua - q * va), (ua - q * va), (ua - q * va), va, va, va
						return ua % m





def    UpperCAmelCase_				( __UpperCAmelCase		:      list     ,     __UpperCAmelCase		:      int     ,     __UpperCAmelCase		:      int = 0     ,     __UpperCAmelCase		:      int = 0				)   ->					int:
      SCREAMING_SNAKE_CASE_      		=     right or len(__UpperCAmelCase				) - 1
      if left > right:
            return -1
      elif list_data[left] == key:
            return left
      elif list_data[right] == key:
            return right
      else:
            return search(__UpperCAmelCase     ,     __UpperCAmelCase     ,     left + 1     ,     right - 1				)


if __name__ == "__main__":
   import doctest

   doctest.testmod()