


import copy

from ...configuration_utils import PretrainedConfig
from ...utils import logging
from ..auto.configuration_auto import AutoConfig


lowercase_           =	logging.get_logger(__name__)

lowercase_           =	{
    'facebook/musicgen-small': 'https://huggingface.co/facebook/musicgen-small/resolve/main/config.json',
    # See all Musicgen models at https://huggingface.co/models?filter=musicgen
}


class        A_					(       __UpperCamelCase    ):




      '''simple docstring'''


      __snake_case					       =   """musicgen_decoder"""
      __snake_case					       =   ["""past_key_values"""]




      def __init__(				self:       Dict						,      a:       Tuple=2048						,      a:       Any=2048						,      a:       Tuple=24						,      a:       Optional[int]=4096						,      a:       Any=16						,      a:       Union[str, Any]=0.0						,      a:       Optional[Any]=True						,      a:       Dict="gelu"						,      a:       Tuple=1024						,      a:       Union[str, Any]=0.1						,      a:       Optional[Any]=0.0						,      a:       Optional[int]=0.0						,      a:       List[Any]=0.0_2						,      a:       Dict=False						,      a:       Tuple=4						,      a:       Any=2048						,      a:       Any=2048						,      a:       Dict=None						,      a:       int=False						,      **a:       Optional[Any]						,      ):
       __lowerCamelCase		:							List[str]							=						vocab_size
       __lowerCamelCase		:							int							=						max_position_embeddings
       __lowerCamelCase		:							Any							=						hidden_size
       __lowerCamelCase		:							Union[str, Any]							=						ffn_dim
       __lowerCamelCase		:							List[str]							=						num_hidden_layers
       __lowerCamelCase		:							Tuple							=						num_attention_heads
       __lowerCamelCase		:							List[Any]							=						dropout
       __lowerCamelCase		:							str							=						attention_dropout
       __lowerCamelCase		:							Tuple							=						activation_dropout
       __lowerCamelCase		:							Dict							=						activation_function
       __lowerCamelCase		:							List[Any]							=						initializer_factor
       __lowerCamelCase		:							Optional[int]							=						layerdrop
       __lowerCamelCase		:							List[Any]							=						use_cache
       __lowerCamelCase		:							str							=						scale_embedding  # scale factor will be sqrt(d_model) if True
       __lowerCamelCase		:							List[str]							=						num_codebooks
       super().__init__(
           pad_token_id=a						,      bos_token_id=a						,      eos_token_id=a						,      tie_word_embeddings=a						,      **a						,      )



class        A_					(       __UpperCamelCase    ):




      '''simple docstring'''


      __snake_case					       =   """musicgen"""
      __snake_case					       =   True




      def __init__(				self:       int						,      **a:       str				):
       super().__init__(**a				)
       if "text_encoder" not in kwargs or "audio_encoder" not in kwargs or "decoder" not in kwargs:
        raise ValueError('Config has to be initialized with text_encoder, audio_encoder and decoder config'				)

       __lowerCamelCase		:							Optional[Any]							=						kwargs.pop('text_encoder'				)
       __lowerCamelCase		:							Dict							=						text_encoder_config.pop('model_type'				)

       __lowerCamelCase		:							Dict							=						kwargs.pop('audio_encoder'				)
       __lowerCamelCase		:							str							=						audio_encoder_config.pop('model_type'				)

       __lowerCamelCase		:							Any							=						kwargs.pop('decoder'				)

       __lowerCamelCase		:							int							=						AutoConfig.for_model(a						,      **a				)
       __lowerCamelCase		:							Tuple							=						AutoConfig.for_model(a						,      **a				)
       __lowerCamelCase		:							Optional[int]							=						MusicgenDecoderConfig(**a				)
       __lowerCamelCase		:							List[Any]							=						True




      @classmethod
      def      _snake_case	(				cls:       str						,      a:       PretrainedConfig						,      a:       PretrainedConfig						,      a:       MusicgenDecoderConfig						,      **a:       Optional[Any]						,      ):
       return cls(
           text_encoder=text_encoder_config.to_dict()						,      audio_encoder=audio_encoder_config.to_dict()						,      decoder=decoder_config.to_dict()						,      **a						,      )




      def      _snake_case	(				self:       Union[str, Any]				):
       __lowerCamelCase		:							List[Any]							=						copy.deepcopy(self.__dict__				)
       __lowerCamelCase		:							List[str]							=						self.text_encoder.to_dict()
       __lowerCamelCase		:							List[Any]							=						self.audio_encoder.to_dict()
       __lowerCamelCase		:							Optional[Any]							=						self.decoder.to_dict()
       __lowerCamelCase		:							Optional[int]							=						self.__class__.model_type
       return output





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())))

