

"""simple docstring"""







import math
def   __UpperCAmelCase    (   UpperCAmelCase_   :    int  )							->      bool:

	'''simple docstring'''





	if 1 < number < 4:
		# 2 and 3 are primes
		return True
	elif number < 2 or number % 2 == 0 or number % 3 == 0:
		# Negatives, 0, 1, all even numbers, all multiples of 3 are not primes
		return False

	# All primes number are in format of 6k +/- 1
	for i in range(5      ,							int(math.sqrt(UpperCAmelCase_  ) + 1  )      ,							6  ):
		if number % i == 0 or number % (i + 2) == 0:
			return False
	return True
def   __UpperCAmelCase    (   UpperCAmelCase_   :    int = 1_00_01  )							->      int:

	'''simple docstring'''





	try:
		__snake_case      :							Union[str, Any]						=			int(UpperCAmelCase_  )
	except (TypeError, ValueError):
		raise TypeError('Parameter nth must be int or castable to int.'  ) from None
	if nth <= 0:
		raise ValueError('Parameter nth must be greater than or equal to one.'  )
	__snake_case      :							list[int]						=			[]
	__snake_case      :							str						=			2
	while len(UpperCAmelCase_  ) < nth:
		if is_prime(UpperCAmelCase_  ):
			primes.append(UpperCAmelCase_  )
			num += 1
		else:
			num += 1
	return primes[len(UpperCAmelCase_  ) - 1]


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






"""simple docstring"""







def   __UpperCAmelCase    (   UpperCAmelCase_   :    int      ,							UpperCAmelCase_   :    int  )							->      int:

	'''simple docstring'''





	while a != 0:
		__snake_case		,    __snake_case      :							Union[str, Any]						=			b % a, a
	return b

def   __UpperCAmelCase    (   UpperCAmelCase_   :    int      ,							UpperCAmelCase_   :    int  )							->      int:

	'''simple docstring'''





	if gcd(UpperCAmelCase_      ,							UpperCAmelCase_  ) != 1:
		__snake_case      :							Union[str, Any]						=			F"mod inverse of {a!r} and {m!r} does not exist"
		raise ValueError(UpperCAmelCase_  )
	__snake_case		,    __snake_case		,    __snake_case      :							List[str]						=			1, 0, a
	__snake_case		,    __snake_case		,    __snake_case      :							Dict						=			0, 1, m
	while va != 0:
		__snake_case      :							List[str]						=			ua // va
		__snake_case		,    __snake_case		,    __snake_case		,    __snake_case		,    __snake_case		,    __snake_case      :							List[str]						=			(ua - q * va), (ua - q * va), (ua - q * va), va, va, va
	return ua % m





