


"""simple docstring"""


class 			lowerCamelCase__						:







						def __init__(							self   :    Optional[int]			,			_lowercase   :    int		):
								A					       = size
								A					       = [0] * size
								A					       = [0] * size







						@staticmethod
						def __a						(							_lowercase   :    int		):
								return index | (index + 1)







						@staticmethod
						def __a						(							_lowercase   :    int		):
								return (index & (index + 1)) - 1







						def __a						(							self   :    int			,			_lowercase   :    int			,			_lowercase   :    int		):
								A					       = value
								while index < self.size:
										A					       = self.get_prev(_lowercase		) + 1
										if current_left_border == index:
												A					       = value
										else:
												A					       = max(_lowercase			,			_lowercase			,			_lowercase		)
										A					       = self.get_next(_lowercase		)







						def __a						(							self   :    Dict			,			_lowercase   :    int			,			_lowercase   :    int		):
								right -= 1  # Because of right is exclusive
								A					       = 0
								while left <= right:
										A					       = self.get_prev(_lowercase		)
										if left <= current_left:
												A					       = max(_lowercase			,			self.tree[right]		)
												A					       = current_left
										else:
												A					       = max(_lowercase			,			self.arr[right]		)
												right -= 1
								return result


if __name__ == "__main__":
	import doctest

	doctest.testmod()









"""simple docstring"""


def  __snake_case       (   UpperCamelCase__ ,			UpperCamelCase__	)      ->		int:







		"""simple docstring"""





		while b:
				A       , A					       = b, a % b
		return a







def  __snake_case       (   UpperCamelCase__ ,			UpperCamelCase__	)      ->		int:







		"""simple docstring"""





		return a if b == 0 else euclidean_gcd_recursive(UpperCamelCase__ ,			a % b	)







def  __snake_case       (   )      ->		List[Any]:







		"""simple docstring"""





		print(f'euclidean_gcd(3, 5) = {euclidean_gcd(3 ,			5	)}'	)
		print(f'euclidean_gcd(5, 3) = {euclidean_gcd(5 ,			3	)}'	)
		print(f'euclidean_gcd(1, 3) = {euclidean_gcd(1 ,			3	)}'	)
		print(f'euclidean_gcd(3, 6) = {euclidean_gcd(3 ,			6	)}'	)
		print(f'euclidean_gcd(6, 3) = {euclidean_gcd(6 ,			3	)}'	)

		print(f'euclidean_gcd_recursive(3, 5) = {euclidean_gcd_recursive(3 ,			5	)}'	)
		print(f'euclidean_gcd_recursive(5, 3) = {euclidean_gcd_recursive(5 ,			3	)}'	)
		print(f'euclidean_gcd_recursive(1, 3) = {euclidean_gcd_recursive(1 ,			3	)}'	)
		print(f'euclidean_gcd_recursive(3, 6) = {euclidean_gcd_recursive(3 ,			6	)}'	)
		print(f'euclidean_gcd_recursive(6, 3) = {euclidean_gcd_recursive(6 ,			3	)}'	)


if __name__ == "__main__":
	main()





