


import os
import unittest

from transformers.models.bertweet.tokenization_bertweet import VOCAB_FILES_NAMES, BertweetTokenizer

from ...test_tokenization_common import TokenizerTesterMixin


class        A_					(       __UpperCamelCase					,      unittest.TestCase    ):




      '''simple docstring'''


      __snake_case					       =   BertweetTokenizer
      __snake_case					       =   False




      def      _snake_case	(				self:       Tuple				):
       super().setUp()

       # Adapted from Sennrich et al. 2015 and https://github.com/rsennrich/subword-nmt
       __lowerCamelCase		:							List[Any]							=						['I', 'm', 'V@@', 'R@@', 'r', 'e@@']
       __lowerCamelCase		:							Any							=						dict(zip(a						,      range(len(a				)				)				)				)
       __lowerCamelCase		:							List[Any]							=						['#version: 0.2', 'a m</w>']
       __lowerCamelCase		:							Any							=						{'unk_token': '<unk>'}

       __lowerCamelCase		:							List[str]							=						os.path.join(self.tmpdirname						,      VOCAB_FILES_NAMES['vocab_file']				)
       __lowerCamelCase		:							List[str]							=						os.path.join(self.tmpdirname						,      VOCAB_FILES_NAMES['merges_file']				)
       with open(self.vocab_file						,      'w'						,      encoding='utf-8'				) as fp:
        for token in vocab_tokens:
         fp.write(F'{token} {vocab_tokens[token]}\n'				)
       with open(self.merges_file						,      'w'						,      encoding='utf-8'				) as fp:
        fp.write('\n'.join(a				)				)




      def      _snake_case	(				self:       Tuple						,      **a:       Dict				):
       kwargs.update(self.special_tokens_map				)
       return BertweetTokenizer.from_pretrained(self.tmpdirname						,      **a				)




      def      _snake_case	(				self:       int						,      a:       str				):
       __lowerCamelCase		:							List[Any]							=						'I am VinAI Research'
       __lowerCamelCase		:							Optional[Any]							=						'I <unk> m V<unk> <unk> <unk> I Re<unk> e<unk> <unk> <unk> <unk>'
       return input_text, output_text




      def      _snake_case	(				self:       Any				):
       __lowerCamelCase		:							Union[str, Any]							=						BertweetTokenizer(self.vocab_file						,      self.merges_file						,      **self.special_tokens_map				)
       __lowerCamelCase		:							Optional[int]							=						'I am VinAI Research'
       __lowerCamelCase		:							int							=						'I a@@ m V@@ i@@ n@@ A@@ I R@@ e@@ s@@ e@@ a@@ r@@ c@@ h'.split()
       __lowerCamelCase		:							List[Any]							=						tokenizer.tokenize(a				)
       self.assertListEqual(a						,      a				)

       __lowerCamelCase		:							Dict							=						tokens + [tokenizer.unk_token]

       __lowerCamelCase		:							Dict							=						[4, 3, 5, 6, 3, 3, 3, 4, 7, 9, 3, 9, 3, 3, 3, 3, 3]
       self.assertListEqual(tokenizer.convert_tokens_to_ids(a				)						,      a				)





def       UpperCamelCase__     (  SCREAMING_SNAKE_CASE__ = 100						):
 __lowerCamelCase		:							List[Any]							=						[[0 for _ in range(SCREAMING_SNAKE_CASE__						)] for _ in range(m + 1						)]
 for i in range(m + 1						):
  __lowerCamelCase		:							Any							=						1

 for n in range(m + 1						):
  for k in range(1			,       SCREAMING_SNAKE_CASE__						):
   memo[n][k] += memo[n][k - 1]
   if n > k:
    memo[n][k] += memo[n - k - 1][k]

 return memo[m][m - 1] - 1


if __name__ == "__main__":
       print(solution(int(input('Enter a number: ').strip())))

