






'''simple docstring'''

from ....configuration_utils import PretrainedConfig
from ....utils import logging


UpperCamelCase							=logging.get_logger(__name__)

UpperCamelCase							={
    "speechbrain/m-ctc-t-large": "https://huggingface.co/speechbrain/m-ctc-t-large/resolve/main/config.json",
    # See all M-CTC-T models at https://huggingface.co/models?filter=mctct
}




class     A    (      SCREAMING_SNAKE_CASE__						):






 """simple docstring"""





 __a			:						Any      =						'''mctct'''
 def __init__(							self			,     __lowerCAmelCase=80_65			,     __lowerCAmelCase=15_36			,     __lowerCAmelCase=36			,     __lowerCAmelCase=61_44			,     __lowerCAmelCase=4			,     __lowerCAmelCase=3_84			,     __lowerCAmelCase=9_20			,     __lowerCAmelCase=1E-5			,     __lowerCAmelCase=0.3			,     __lowerCAmelCase="relu"			,     __lowerCAmelCase=0.02			,     __lowerCAmelCase=0.3			,     __lowerCAmelCase=0.3			,     __lowerCAmelCase=1			,     __lowerCAmelCase=0			,     __lowerCAmelCase=2			,     __lowerCAmelCase=1			,     __lowerCAmelCase=0.3			,     __lowerCAmelCase=1			,     __lowerCAmelCase=(7,)			,     __lowerCAmelCase=(3,)			,     __lowerCAmelCase=80			,     __lowerCAmelCase=1			,     __lowerCAmelCase=None			,     __lowerCAmelCase="sum"			,     __lowerCAmelCase=False			,     **__lowerCAmelCase			,     ):
       super().__init__(**__lowerCAmelCase			,     pad_token_id=__lowerCAmelCase			,     bos_token_id=__lowerCAmelCase			,     eos_token_id=__lowerCAmelCase )
       UpperCamelCase_				:   int					    =							vocab_size
       UpperCamelCase_				:   Optional[int]					    =							hidden_size
       UpperCamelCase_				:   str					    =							num_hidden_layers
       UpperCamelCase_				:   Optional[Any]					    =							intermediate_size
       UpperCamelCase_				:   Tuple					    =							num_attention_heads
       UpperCamelCase_				:   int					    =							attention_head_dim
       UpperCamelCase_				:   Dict					    =							max_position_embeddings
       UpperCamelCase_				:   Any					    =							layer_norm_eps
       UpperCamelCase_				:   Dict					    =							layerdrop
       UpperCamelCase_				:   List[str]					    =							hidden_act
       UpperCamelCase_				:   List[Any]					    =							initializer_range
       UpperCamelCase_				:   Optional[int]					    =							hidden_dropout_prob
       UpperCamelCase_				:   List[Any]					    =							attention_probs_dropout_prob
       UpperCamelCase_				:   Optional[Any]					    =							pad_token_id
       UpperCamelCase_				:   Dict					    =							bos_token_id
       UpperCamelCase_				:   Any					    =							eos_token_id
       UpperCamelCase_				:   Dict					    =							conv_glu_dim
       UpperCamelCase_				:   Tuple					    =							conv_dropout
       UpperCamelCase_				:   Any					    =							num_conv_layers
       UpperCamelCase_				:   List[Any]					    =							input_feat_per_channel
       UpperCamelCase_				:   Union[str, Any]					    =							input_channels
       UpperCamelCase_				:   Union[str, Any]					    =							conv_channels
       UpperCamelCase_				:   Any					    =							ctc_loss_reduction
       UpperCamelCase_				:   Tuple					    =							ctc_zero_infinity

       # prevents config testing fail with exporting to json
       UpperCamelCase_				:   List[str]					    =							list(__lowerCAmelCase )
       UpperCamelCase_				:   int					    =							list(__lowerCAmelCase )

       if len(self.conv_kernel ) != self.num_conv_layers:
             raise ValueError(
                 """Configuration for convolutional module is incorrect. """
                 """It is required that `len(config.conv_kernel)` == `config.num_conv_layers` """
                 F"but is `len(config.conv_kernel) = {len(self.conv_kernel )}`, "
                 F"`config.num_conv_layers = {self.num_conv_layers}`." )














'''simple docstring'''

from itertools import count



def 							snake_case					(     a_							: int = 50	)       ->				int:





      """simple docstring"""

      UpperCamelCase_				:   int					    =							[1] * min_block_length

      for n in count(a_	):
            fill_count_functions.append(1	)

            for block_length in range(a_    ,   n + 1	):
                  for block_start in range(n - block_length	):
                        fill_count_functions[n] += fill_count_functions[
                            n - block_start - block_length - 1
                        ]

                  fill_count_functions[n] += 1

            if fill_count_functions[n] > 1_000_000:
                  break

      return n


if __name__ == "__main__":
      print(f"{solution() = }")






