



'''simple docstring'''



def _lowercase      (     __A							,__A				):



 '''simple docstring'''



 while a != 0:
  __UpperCamelCase 					=     b % a, a
 return b







def _lowercase      (     __A							,__A				):



 '''simple docstring'''



 if gcd(_SCREAMING_SNAKE_CASE							,_SCREAMING_SNAKE_CASE				) != 1:
  __UpperCamelCase 					=     f"mod inverse of {a!r} and {m!r} does not exist"
  raise ValueError(_SCREAMING_SNAKE_CASE				)
 __UpperCamelCase 					=     1, 0, a
 __UpperCamelCase 					=     0, 1, m
 while va != 0:
  __UpperCamelCase 					=     ua // va
  __UpperCamelCase 					=     (ua - q * va), (ua - q * va), (ua - q * va), va, va, va
 return ua % m






"""simple docstring"""
def 						__a   (	_SCREAMING_SNAKE_CASE		,     _SCREAMING_SNAKE_CASE = False   )	->str:

  if not isinstance(_SCREAMING_SNAKE_CASE		,     _SCREAMING_SNAKE_CASE   ):
    a__:     Optional[int]										=	F'Expected string as input, found {type(_SCREAMING_SNAKE_CASE   )}'
    raise ValueError(_SCREAMING_SNAKE_CASE   )
  if not isinstance(_SCREAMING_SNAKE_CASE		,     _SCREAMING_SNAKE_CASE   ):
    a__:     List[str]										=	F'Expected boolean as use_pascal parameter, found {type(_SCREAMING_SNAKE_CASE   )}'
    raise ValueError(_SCREAMING_SNAKE_CASE   )

  a__:     int										=	input_str.split('_'   )

  a__:     List[str]										=	0 if use_pascal else 1

  a__:     List[str]										=	words[start_index:]

  a__:     List[str]										=	[word[0].upper() + word[1:] for word in words_to_capitalize]

  a__:     List[str]										=	'' if use_pascal else words[0]

  return "".join([initial_word, *capitalized_words]   )


if __name__ == "__main__":
 from doctest import testmod

 testmod()


