





from __future__ import annotations

from collections.abc import Iterator
from typing import Any







class 	_UpperCamelCase	:







					'''simple docstring'''

					def __init__(    self     :	List[Any]			,       __lowercase     :	Any		):






						'''simple docstring'''







						UpperCAmelCase_		    =  data
						UpperCAmelCase_		    =  None





					def __str__(    self     :	Any		):






						'''simple docstring'''







						return F"""{self.data}"""







class 	_UpperCamelCase	:







					'''simple docstring'''

					def __init__(    self     :	Optional[Any]		):






						'''simple docstring'''







						UpperCAmelCase_		    =  None
						UpperCAmelCase_		    =  None





					def __iter__(    self     :	List[str]		):






						'''simple docstring'''







						UpperCAmelCase_		    =  self.front
						while node:
							yield node.data
							UpperCAmelCase_		    =  node.next





					def __len__(    self     :	List[str]		):






						'''simple docstring'''







						return len(tuple(iter(self		)		)		)





					def __str__(    self     :	Tuple		):






						'''simple docstring'''







						return " <- ".join(str(__lowercase		) for item in self		)





					def 							SCREAMING_SNAKE_CASE				(    self     :	Optional[Any]		):






						'''simple docstring'''







						return len(self		) == 0





					def 							SCREAMING_SNAKE_CASE				(    self     :	List[str]			,       __lowercase     :	Any		):






						'''simple docstring'''







						UpperCAmelCase_		    =  Node(__lowercase		)
						if self.is_empty():
							UpperCAmelCase_		    =  UpperCAmelCase_		    =  node
						else:
							assert isinstance(self.rear			,       __lowercase		)
							UpperCAmelCase_		    =  node
							UpperCAmelCase_		    =  node





					def 							SCREAMING_SNAKE_CASE				(    self     :	str		):






						'''simple docstring'''







						if self.is_empty():
							raise IndexError("""dequeue from empty queue"""		)
						assert isinstance(self.front			,       __lowercase		)
						UpperCAmelCase_		    =  self.front
						UpperCAmelCase_		    =  self.front.next
						if self.front is None:
							UpperCAmelCase_		    =  None
						return node.data





					def 							SCREAMING_SNAKE_CASE				(    self     :	str		):






						'''simple docstring'''







						UpperCAmelCase_		    =  UpperCAmelCase_		    =  None


if __name__ == "__main__":
				from doctest import testmod

				testmod()









def  A_(      A ):
	if not isinstance(A					,   A ):
		UpperCAmelCase_		    =  f"""Input value of [number={number}] must be an integer"""
		raise TypeError(A )
	if number < 0 or number % 2 == 1:
		return False
	UpperCAmelCase_		    =  int(number**0.5 )
	return number == number_sqrt * (number_sqrt + 1)


if __name__ == "__main__":
				import doctest

				doctest.testmod()


