






__UpperCAmelCase      =				{
    "0": 1,
    "1": 1,
    "2": 2,
    "3": 6,
    "4": 2_4,
    "5": 1_2_0,
    "6": 7_2_0,
    "7": 5_0_4_0,
    "8": 4_0_3_2_0,
    "9": 3_6_2_8_8_0,
}

__UpperCAmelCase      =				{1_4_5: 1_4_5}

__UpperCAmelCase      =				{
    1_4_5: 0,
    1_6_9: 3,
    3_6_3_0_1: 3,
    1_4_5_4: 3,
    8_7_1: 2,
    4_5_3_6_1: 2,
    8_7_2: 2,
}





def 						A_					(						lowercase_			)				->int:







 """simple docstring"""

 if n in CACHE_SUM_DIGIT_FACTORIALS:
  return CACHE_SUM_DIGIT_FACTORIALS[n]
 SCREAMING_SNAKE_CASE				    =		sum(DIGIT_FACTORIALS[let] for let in str(lowercase_			)			)
 SCREAMING_SNAKE_CASE				    =		ret
 return ret





def 						A_					(						lowercase_	,  lowercase_ = None			)				->int:







 """simple docstring"""

 SCREAMING_SNAKE_CASE				    =		previous or set()
 if n in CHAIN_LENGTH_CACHE:
  return CHAIN_LENGTH_CACHE[n]
 SCREAMING_SNAKE_CASE				    =		sum_digit_factorials(lowercase_			)
 if next_number in previous:
  SCREAMING_SNAKE_CASE				    =		0
  return 0
 else:
  previous.add(lowercase_			)
  SCREAMING_SNAKE_CASE				    =		1 + chain_length(lowercase_	,  lowercase_			)
  SCREAMING_SNAKE_CASE				    =		ret
  return ret





def 						A_					(						lowercase_ = 6_0	,  lowercase_ = 1_0_0_0_0_0_0			)				->int:







 """simple docstring"""

 return sum(1 for i in range(1	,  lowercase_			) if chain_length(lowercase_			) == num_terms			)


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








"""simple docstring"""







from collections import OrderedDict
from typing import Mapping

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


__lowercase          = logging.get_logger(__name__)

__lowercase          = {
    """squeezebert/squeezebert-uncased""": (
        """https://huggingface.co/squeezebert/squeezebert-uncased/resolve/main/config.json"""
    ),
    """squeezebert/squeezebert-mnli""": """https://huggingface.co/squeezebert/squeezebert-mnli/resolve/main/config.json""",
    """squeezebert/squeezebert-mnli-headless""": (
        """https://huggingface.co/squeezebert/squeezebert-mnli-headless/resolve/main/config.json"""
    ),
}






class 		_A    (    _a    ):







    """simple docstring"""




    UpperCAmelCase			:				Tuple      =			SQUEEZEBERT_PRETRAINED_CONFIG_ARCHIVE_MAP
    UpperCAmelCase			:				Any      =			"""squeezebert"""






    def __init__(   self							:       List[str]							,					__UpperCAmelCase							:       Tuple=30522							,					__UpperCAmelCase							:       Tuple=768							,					__UpperCAmelCase							:       int=12							,					__UpperCAmelCase							:       str=12							,					__UpperCAmelCase							:       List[Any]=3072							,					__UpperCAmelCase							:       Dict="gelu"							,					__UpperCAmelCase							:       List[Any]=0.1							,					__UpperCAmelCase							:       Optional[int]=0.1							,					__UpperCAmelCase							:       Optional[Any]=512							,					__UpperCAmelCase							:       int=2							,					__UpperCAmelCase							:       Dict=0.02							,					__UpperCAmelCase							:       Optional[int]=1e-12							,					__UpperCAmelCase							:       Optional[Any]=0							,					__UpperCAmelCase							:       Optional[Any]=768							,					__UpperCAmelCase							:       Tuple=4							,					__UpperCAmelCase							:       Dict=4							,					__UpperCAmelCase							:       str=4							,					__UpperCAmelCase							:       List[Any]=1							,					__UpperCAmelCase							:       Optional[int]=4							,					__UpperCAmelCase							:       Optional[int]=4							,					**__UpperCAmelCase							:       Tuple							,					):
      super().__init__(pad_token_id=__UpperCAmelCase							,					**__UpperCAmelCase)

      a		:						List[Any] 				=     vocab_size
      a		:						List[Any] 				=     hidden_size
      a		:						Dict 				=     num_hidden_layers
      a		:						int 				=     num_attention_heads
      a		:						Dict 				=     hidden_act
      a		:						Tuple 				=     intermediate_size
      a		:						int 				=     hidden_dropout_prob
      a		:						List[Any] 				=     attention_probs_dropout_prob
      a		:						Union[str, Any] 				=     max_position_embeddings
      a		:						Union[str, Any] 				=     type_vocab_size
      a		:						Optional[Any] 				=     initializer_range
      a		:						Any 				=     layer_norm_eps
      a		:						Any 				=     embedding_size
      a		:						Tuple 				=     q_groups
      a		:						List[str] 				=     k_groups
      a		:						str 				=     v_groups
      a		:						Optional[Any] 				=     post_attention_groups
      a		:						List[str] 				=     intermediate_groups
      a		:						Optional[int] 				=     output_groups






class 		_A    (    _a    ):







    """simple docstring"""




    @property
    def       __snake_case				(   self							:       Optional[Any]):
      if self.task == "multiple-choice":
        a		:						Optional[int] 				=     {0: "batch", 1: "choice", 2: "sequence"}
      else:
        a		:						Tuple 				=     {0: "batch", 1: "sequence"}
      return OrderedDict(
          [
              ("input_ids", dynamic_axis),
              ("attention_mask", dynamic_axis),
              ("token_type_ids", dynamic_axis),
          ])






