
'''simple docstring'''






from __future__ import annotations

from typing import Any

class 							_snake_case     :
	"""simple docstring"""





	def __init__(						self				: Tuple					,						UpperCamelCase_				: Any					,						UpperCamelCase_				: Any      ):  # noqa: A002
			lowerCAmelCase_   :       List[str]    							=item
			lowerCAmelCase_   :       List[str]    							=next







class 							_snake_case     :
	"""simple docstring"""





	def __init__(						self				: int      ):
			lowerCAmelCase_   :       Node | None    							=None
			lowerCAmelCase_   :       int    							=0




	def 	__A      (						self				: Optional[Any]					,						UpperCamelCase_				: Any      ):
			lowerCAmelCase_   :       Union[str, Any]    							=Node(UpperCamelCase__					,						self.head      )
			self.size += 1




	def 	__A      (						self				: List[str]      ):
			# 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_   :       List[str]    							=self.head.item
					lowerCAmelCase_   :       int    							=self.head.next
					self.size -= 1
					return item




	def 	__A      (						self				: Dict      ):
			return self.head is None




	def __str__(						self				: Tuple      ):
			if self.is_empty():
					return ""
			else:
					lowerCAmelCase_   :       str    							=self.head
					lowerCAmelCase_   :       str    							=""""""
					lowerCAmelCase_   :       list[str]    							=[]
					while iterate:
							item_list.append(str(iterate.item      )      )
							lowerCAmelCase_   :       Union[str, Any]    							=iterate.next

					lowerCAmelCase_   :       Any    							=""" --> """.join(UpperCamelCase__      )

					return item_str





	def __len__(						self				: Union[str, Any]      ):
			return self.size














'''simple docstring'''







def 					SCREAMING_SNAKE_CASE_			(UpperCamelCase							,     UpperCamelCase = 13 ) ->			str:
							lowerCamelCase__   :      Dict			    =			""""""
							for c in s:
														if "A" <= c <= "Z":
																					out += chr(ord("""A""" ) + (ord(UpperCamelCase ) - ord("""A""" ) + n) % 26 )
														elif "a" <= c <= "z":
																					out += chr(ord("""a""" ) + (ord(UpperCamelCase ) - ord("""a""" ) + n) % 26 )
														else:
																					out += c
							return out





def 					SCREAMING_SNAKE_CASE_			() ->			None:
							lowerCamelCase__   :      Dict			    =			input("""Enter message: """ )

							lowerCamelCase__   :      str			    =			dencrypt(UpperCamelCase							,     13 )
							print("""Encryption:"""							,     UpperCamelCase )

							lowerCamelCase__   :      List[str]			    =			dencrypt(UpperCamelCase							,     13 )
							print("""Decryption: """							,     UpperCamelCase )


if __name__ == "__main__":
			import doctest

			doctest.testmod()
			main()

