"""simple docstring"""




class       a_      :




					def __init__(	self						:     Optional[Any]  ,						snake_case__						:     int     ):
							lowerCAmelCase__        =   n
							lowerCAmelCase__        =   [None] * self.n
							lowerCAmelCase__        =   0  # index of the first element
							lowerCAmelCase__        =   0
							lowerCAmelCase__        =   0




					def __len__(	self						:     int     ):
							return self.size




					def 						_SCREAMING_SNAKE_CASE						(	self						:     Any     ):
							return self.size == 0




					def 						_SCREAMING_SNAKE_CASE						(	self						:     Dict     ):
							return False if self.is_empty() else self.array[self.front]




					def 						_SCREAMING_SNAKE_CASE						(	self						:     Union[str, Any]  ,						snake_case__						:     List[str]     ):
							if self.size >= self.n:
									raise Exception("""QUEUE IS FULL"""     )

							lowerCAmelCase__        =   data
							lowerCAmelCase__        =   (self.rear + 1) % self.n
							self.size += 1
							return self




					def 						_SCREAMING_SNAKE_CASE						(	self						:     Optional[Any]     ):
							if self.size == 0:
									raise Exception("""UNDERFLOW"""     )

							lowerCAmelCase__        =   self.array[self.front]
							lowerCAmelCase__        =   None
							lowerCAmelCase__        =   (self.front + 1) % self.n
							self.size -= 1
							return temp





"""simple docstring"""




def 							_UpperCAmelCase		(       lowerCamelCase__			,  lowerCamelCase__     ):





		"""simple docstring"""




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







def 							_UpperCAmelCase		(       lowerCamelCase__			,  lowerCamelCase__     ):





		"""simple docstring"""




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







def 							_UpperCAmelCase		(       ):





		"""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()




