




import inspect
import json
import os
import tempfile
import unittest

from transformers.models.speech_to_text_a import SpeechaTextaTokenizer
from transformers.models.speech_to_text_a.tokenization_speech_to_text_a import VOCAB_FILES_NAMES

from ...test_tokenization_common import TokenizerTesterMixin
class 				__snake_case     (_a  ,		unittest.TestCase						):
				lowerCAmelCase__			=   SpeechaTextaTokenizer
				lowerCAmelCase__			=   False



				def 					SCREAMING_SNAKE_CASE				(					self					:						Optional[int]					)     ->			Optional[int]:





								'''simple docstring'''




								super().setUp()

								_lowerCAmelCase			:			Optional[int]        =					"""<s> <pad> </s> <unk> here@@ a couple of@@ words for the he@@ re@@ vocab""".split(""" """					)
								_lowerCAmelCase			:			Optional[int]        =					["""he re</w> 123""", """here a 1456"""]
								_lowerCAmelCase			:			Union[str, Any]        =					dict(zip(_UpperCAmelCase						,		range(len(_UpperCAmelCase					)					)					)					)

								_lowerCAmelCase			:			Any        =					{"""pad_token""": """<pad>""", """unk_token""": """<unk>""", """bos_token""": """<s>""", """eos_token""": """</s>"""}

								_lowerCAmelCase			:			Union[str, Any]        =					tempfile.mkdtemp()
								_lowerCAmelCase			:			Tuple        =					os.path.join(self.tmpdirname						,		VOCAB_FILES_NAMES["""vocab_file"""]					)
								_lowerCAmelCase			:			Any        =					os.path.join(self.tmpdirname						,		VOCAB_FILES_NAMES["""merges_file"""]					)

								with open(self.vocab_file						,		"""w"""						,		encoding="""utf-8"""					) as fp:
												fp.write(json.dumps(_UpperCAmelCase					) + """\n"""					)

								with open(self.merges_file						,		"""w"""					) as fp:
												fp.write("""\n""".join(_UpperCAmelCase					)					)



				def 					SCREAMING_SNAKE_CASE				(					self					:						int					)     ->			Any:





								'''simple docstring'''




								_lowerCAmelCase			:			List[str]        =					list(self.get_tokenizer().get_vocab().keys()					)

								self.assertEqual(vocab_keys[0]						,		"""<s>"""					)
								self.assertEqual(vocab_keys[1]						,		"""<pad>"""					)
								self.assertEqual(vocab_keys[-1]						,		"""vocab"""					)
								self.assertEqual(len(_UpperCAmelCase					)						,		14					)



				def 					SCREAMING_SNAKE_CASE				(					self					:						Any					)     ->			int:





								'''simple docstring'''




								self.assertEqual(self.get_tokenizer().vocab_size						,		14					)



				def 					SCREAMING_SNAKE_CASE				(					self					:						str					)     ->			Tuple:





								'''simple docstring'''




								_lowerCAmelCase			:			List[Any]        =					SpeechaTextaTokenizer.from_pretrained(self.tmpdirname					)

								# make sure @@ is correctly concatenated
								_lowerCAmelCase			:			int        =					[4, 6, 8, 7, 10]  # ["here@@", "couple", "words", "of@@", "the"]
								_lowerCAmelCase			:			List[Any]        =					tokenizer.decode(_UpperCAmelCase					)

								self.assertTrue(output_string == """herecouple words ofthe"""					)



				def 					SCREAMING_SNAKE_CASE				(					self					:						Dict					)     ->			Any:





								'''simple docstring'''




								_lowerCAmelCase			:			str        =					SpeechaTextaTokenizer.from_pretrained(self.tmpdirname					)

								with tempfile.TemporaryDirectory() as tmp_dirname:
												tokenizer.save_pretrained(_UpperCAmelCase					)
												os.remove(os.path.join(_UpperCAmelCase						,		"""merges.txt"""					)					)

												# load tokenizer without merges file should not throw an error
												_lowerCAmelCase			:			Any        =					SpeechaTextaTokenizer.from_pretrained(_UpperCAmelCase					)

								with tempfile.TemporaryDirectory() as tmp_dirname:
												# save tokenizer and load again
												tokenizer.save_pretrained(_UpperCAmelCase					)
												_lowerCAmelCase			:			int        =					SpeechaTextaTokenizer.from_pretrained(_UpperCAmelCase					)

								self.assertIsNotNone(_UpperCAmelCase					)



				def 					SCREAMING_SNAKE_CASE				(					self					:						Optional[Any]					)     ->			Optional[Any]:





								'''simple docstring'''




								if not self.test_slow_tokenizer:
												return

								_lowerCAmelCase			:			Dict        =					inspect.signature(self.tokenizer_class.__init__					)
								_lowerCAmelCase			:			Union[str, Any]        =					self.get_tokenizer()

								for parameter_name, parameter in signature.parameters.items():
												if parameter.default != inspect.Parameter.empty and parameter_name != "merges_file":
																self.assertIn(_UpperCAmelCase						,		tokenizer.init_kwargs					)





from __future__ import annotations


class        A_					:




      '''simple docstring'''


      def __init__(				self:       Union[str, Any]						,      a:       int				):
       __lowerCamelCase		:							List[Any]							=						data
       __lowerCamelCase		:							Optional[Any]							=						None



class        A_					:




      '''simple docstring'''


      def __init__(				self:       Dict				):
       __lowerCamelCase		:							Dict							=						None




      def      _snake_case	(				self:       Dict						,      a:       int				):
       __lowerCamelCase		:							List[Any]							=						Node(a				)
       __lowerCamelCase		:							Dict							=						self.head
       __lowerCamelCase		:							Optional[int]							=						new_node
       return self.head.data




      def      _snake_case	(				self:       Optional[Any]				):
       __lowerCamelCase		:							Union[str, Any]							=						self.head
       __lowerCamelCase		:							List[Any]							=						self.head
       if self.head:
        while fast_pointer and fast_pointer.next:
         __lowerCamelCase		:							Any							=						fast_pointer.next.next
         __lowerCamelCase		:							str							=						slow_pointer.next
        return slow_pointer.data
       else:
        print('No element found.'				)
        return None


if __name__ == "__main__":
       lowercase_           =	LinkedList()
       for _ in range(int(input().strip())):
              lowercase_           =	int(input().strip())
              link.push(data)
       print(link.middle_element())

