






'''simple docstring'''

from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_sentencepiece_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


UpperCamelCase							={
    """configuration_albert""": ["""ALBERT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """AlbertConfig""", """AlbertOnnxConfig"""],
}

try:
       if not is_sentencepiece_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       UpperCamelCase							=["""AlbertTokenizer"""]

try:
       if not is_tokenizers_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       UpperCamelCase							=["""AlbertTokenizerFast"""]

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       UpperCamelCase							=[
           """ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST""",
           """AlbertForMaskedLM""",
           """AlbertForMultipleChoice""",
           """AlbertForPreTraining""",
           """AlbertForQuestionAnswering""",
           """AlbertForSequenceClassification""",
           """AlbertForTokenClassification""",
           """AlbertModel""",
           """AlbertPreTrainedModel""",
           """load_tf_weights_in_albert""",
       ]

try:
       if not is_tf_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       UpperCamelCase							=[
           """TF_ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST""",
           """TFAlbertForMaskedLM""",
           """TFAlbertForMultipleChoice""",
           """TFAlbertForPreTraining""",
           """TFAlbertForQuestionAnswering""",
           """TFAlbertForSequenceClassification""",
           """TFAlbertForTokenClassification""",
           """TFAlbertMainLayer""",
           """TFAlbertModel""",
           """TFAlbertPreTrainedModel""",
       ]

try:
       if not is_flax_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       UpperCamelCase							=[
           """FlaxAlbertForMaskedLM""",
           """FlaxAlbertForMultipleChoice""",
           """FlaxAlbertForPreTraining""",
           """FlaxAlbertForQuestionAnswering""",
           """FlaxAlbertForSequenceClassification""",
           """FlaxAlbertForTokenClassification""",
           """FlaxAlbertModel""",
           """FlaxAlbertPreTrainedModel""",
       ]

if TYPE_CHECKING:
       from .configuration_albert import ALBERT_PRETRAINED_CONFIG_ARCHIVE_MAP, AlbertConfig, AlbertOnnxConfig

       try:
              if not is_sentencepiece_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .tokenization_albert import AlbertTokenizer

       try:
              if not is_tokenizers_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .tokenization_albert_fast import AlbertTokenizerFast

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_albert import (
                  ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
                  AlbertForMaskedLM,
                  AlbertForMultipleChoice,
                  AlbertForPreTraining,
                  AlbertForQuestionAnswering,
                  AlbertForSequenceClassification,
                  AlbertForTokenClassification,
                  AlbertModel,
                  AlbertPreTrainedModel,
                  load_tf_weights_in_albert,
              )

       try:
              if not is_tf_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_tf_albert import (
                  TF_ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
                  TFAlbertForMaskedLM,
                  TFAlbertForMultipleChoice,
                  TFAlbertForPreTraining,
                  TFAlbertForQuestionAnswering,
                  TFAlbertForSequenceClassification,
                  TFAlbertForTokenClassification,
                  TFAlbertMainLayer,
                  TFAlbertModel,
                  TFAlbertPreTrainedModel,
              )

       try:
              if not is_flax_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_flax_albert import (
                  FlaxAlbertForMaskedLM,
                  FlaxAlbertForMultipleChoice,
                  FlaxAlbertForPreTraining,
                  FlaxAlbertForQuestionAnswering,
                  FlaxAlbertForSequenceClassification,
                  FlaxAlbertForTokenClassification,
                  FlaxAlbertModel,
                  FlaxAlbertPreTrainedModel,
              )
else:
       import sys

       UpperCamelCase							=_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)














'''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() = }")






