

'''simple docstring'''



class 						lowerCAmelCase__   :



 """simple docstring"""



 def __init__(		self					:       List[Any]					,							__SCREAMING_SNAKE_CASE					:       int			)  -> List[Any]:


      """simple docstring"""




      __SCREAMING_SNAKE_CASE     =      n
      __SCREAMING_SNAKE_CASE     =      [None] * self.n
      __SCREAMING_SNAKE_CASE     =      0  # index of the first element
      __SCREAMING_SNAKE_CASE     =      0
      __SCREAMING_SNAKE_CASE     =      0
 def __len__(		self					:       Tuple			)  -> int:


      """simple docstring"""




      return self.size
 def       UpperCAmelCase__		(		self					:       Optional[Any]			)  -> bool:


      """simple docstring"""




      return self.size == 0
 def       UpperCAmelCase__		(		self					:       Any			)  -> int:


      """simple docstring"""




      return False if self.is_empty() else self.array[self.front]
 def       UpperCAmelCase__		(		self					:       Dict					,							__SCREAMING_SNAKE_CASE					:       Union[str, Any]			)  -> Dict:


      """simple docstring"""




      if self.size >= self.n:
           raise Exception("""QUEUE IS FULL"""			)

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


 def       UpperCAmelCase__		(		self					:       List[str]			)  -> Optional[Any]:


      """simple docstring"""




      if self.size == 0:
           raise Exception("""UNDERFLOW"""			)

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









'''simple docstring'''



class 						lowerCAmelCase__   :



 """simple docstring"""



 def __init__(		self					:       List[Any]					,							__SCREAMING_SNAKE_CASE					:       int			)  -> List[Any]:


      """simple docstring"""




      __SCREAMING_SNAKE_CASE     =      n
      __SCREAMING_SNAKE_CASE     =      [None] * self.n
      __SCREAMING_SNAKE_CASE     =      0  # index of the first element
      __SCREAMING_SNAKE_CASE     =      0
      __SCREAMING_SNAKE_CASE     =      0
 def __len__(		self					:       Tuple			)  -> int:


      """simple docstring"""




      return self.size
 def       UpperCAmelCase__		(		self					:       Optional[Any]			)  -> bool:


      """simple docstring"""




      return self.size == 0
 def       UpperCAmelCase__		(		self					:       Any			)  -> int:


      """simple docstring"""




      return False if self.is_empty() else self.array[self.front]
 def       UpperCAmelCase__		(		self					:       Dict					,							__SCREAMING_SNAKE_CASE					:       Union[str, Any]			)  -> Dict:


      """simple docstring"""




      if self.size >= self.n:
           raise Exception("""QUEUE IS FULL"""			)

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


 def       UpperCAmelCase__		(		self					:       List[str]			)  -> Optional[Any]:


      """simple docstring"""




      if self.size == 0:
           raise Exception("""UNDERFLOW"""			)

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






