


"""simple docstring"""
from __future__ import annotations

from typing import Any




class   lowercase__							:





   def __init__(       self			,      SCREAMING_SNAKE_CASE			,      SCREAMING_SNAKE_CASE)     ->     None:  # noqa: A002
      _lowerCamelCase  :				int      =		item
      _lowerCamelCase  :				Dict      =		next







class   lowercase__							:





   def __init__(       self)     ->     None:
      _lowerCamelCase  :				Node | None      =		None
      _lowerCamelCase  :				List[Any]      =		0





   def 		UpperCamelCase_     (       self			,      SCREAMING_SNAKE_CASE)     ->     None:
      _lowerCamelCase  :				List[str]      =		Node(SCREAMING_SNAKE_CASE			,      self.head)
      self.size += 1





   def 		UpperCamelCase_     (       self)     ->     Any:
      # Switched 'self.is_empty()' to 'self.head is None'
      # because mypy was considering the possibility that 'self.head'
      # can be None in below else part and giving error
      if self.head is None:
         return None
      else:
         _lowerCamelCase  :				int      =		self.head.item
         _lowerCamelCase  :				Union[str, Any]      =		self.head.next
         self.size -= 1
         return item





   def 		UpperCamelCase_     (       self)     ->     bool:
      return self.head is None





   def __str__(       self)     ->     str:
      if self.is_empty():
         return ""
      else:
         _lowerCamelCase  :				int      =		self.head
         _lowerCamelCase  :				Dict      =		""""""
         _lowerCamelCase  :				list[str]      =		[]
         while iterate:
            item_list.append(str(iterate.item))
            _lowerCamelCase  :				Tuple      =		iterate.next

         _lowerCamelCase  :				Tuple      =		""" --> """.join(SCREAMING_SNAKE_CASE)

         return item_str





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





"""simple docstring"""
from itertools import permutations

def 							_snake_case			(      __snake_case       :			int = 5      ):




   """simple docstring"""







   if gon_side < 3 or gon_side > 5:
      raise ValueError("""gon_side must be in the range [3, 5]"""      )

   # Since it's 16, we know 10 is on the outer ring
   # Put the big numbers at the end so that they are never the first number
   _lowerCamelCase  :				Dict      =		list(range(gon_side + 1	,   0	,   -1      )      )
   _lowerCamelCase  :				Optional[int]      =		list(range(gon_side + 2	,   gon_side * 2 + 1      )      )

   for perm in permutations(small_numbers + big_numbers      ):
      _lowerCamelCase  :				List[str]      =		generate_gon_ring(__snake_case	,   list(__snake_case      )      )
      if is_magic_gon(__snake_case      ):
         return int("""""".join(str(__snake_case      ) for n in numbers      )      )

   _lowerCamelCase  :				Union[str, Any]      =		F'Magic {gon_side}-gon ring is impossible'
   raise ValueError(__snake_case      )

def 							_snake_case			(      __snake_case       :			int	,   __snake_case       :			list[int]      ):




   """simple docstring"""







   _lowerCamelCase  :				Union[str, Any]      =		[0] * (gon_side * 3)
   _lowerCamelCase  :				Dict      =		perm[0:3]
   perm.append(perm[1]      )

   _lowerCamelCase  :				Tuple      =		1 if gon_side < 5 else 2

   for i in range(1	,   len(__snake_case      ) // 3 + magic_number      ):
      _lowerCamelCase  :				Dict      =		perm[2 * i + 1]
      _lowerCamelCase  :				str      =		result[3 * i - 1]
      _lowerCamelCase  :				Dict      =		perm[2 * i + 2]

   return result

def 							_snake_case			(      __snake_case       :			list[int]      ):




   """simple docstring"""







   if len(__snake_case      ) % 3 != 0:
      raise ValueError("""a gon ring should have a length that is a multiple of 3"""      )

   if min(numbers[::3]      ) != numbers[0]:
      return False

   _lowerCamelCase  :				str      =		sum(numbers[:3]      )

   return all(sum(numbers[i : i + 3]      ) == total for i in range(3	,   len(__snake_case      )	,   3      )      )


if __name__ == "__main__":
 print(solution())

