






from math import factorial

UpperCamelCase								=		{str(digit): factorial(digit) for digit in range(10)}






def    __magic_name__    (	SCREAMING_SNAKE_CASE				)     ->    int:
							if not isinstance(SCREAMING_SNAKE_CASE     ,     SCREAMING_SNAKE_CASE				):
														raise TypeError('Parameter number must be int'				)

							if number < 0:
														raise ValueError('Parameter number must be greater than or equal to 0'				)

							# Converts number in string to iterate on its digits and adds its factorial.
							return sum(DIGIT_FACTORIAL[digit] for digit in str(SCREAMING_SNAKE_CASE				)				)






def    __magic_name__    (	SCREAMING_SNAKE_CASE = 60     ,     SCREAMING_SNAKE_CASE = 1_000_000				)     ->    int:

							if not isinstance(SCREAMING_SNAKE_CASE     ,     SCREAMING_SNAKE_CASE				) or not isinstance(SCREAMING_SNAKE_CASE     ,     SCREAMING_SNAKE_CASE				):
														raise TypeError('Parameters chain_length and number_limit must be int'				)

							if chain_length <= 0 or number_limit <= 0:
														raise ValueError(
														    'Parameters chain_length and number_limit must be greater than 0'				)

							# the counter for the chains with the exact desired length
							_lowercase							:   Tuple 							=   0
							# the cached sizes of the previous chains
							_lowercase							:   dict[int, int] 							=   {}

							for start_chain_element in range(1     ,     SCREAMING_SNAKE_CASE				):
														# The temporary set will contain the elements of the chain
														_lowercase							:   Dict 							=   set()
														_lowercase							:   Union[str, Any] 							=   0

														# Stop computing the chain when you find a cached size, a repeating item or the
														# length is greater then the desired one.
														_lowercase							:   Tuple 							=   start_chain_element
														while (
														    chain_element not in chain_sets_lengths
														    and chain_element not in chain_set
														    and chain_set_length <= chain_length
														):
																					chain_set.add(SCREAMING_SNAKE_CASE				)
																					chain_set_length += 1
																					_lowercase							:   int 							=   digit_factorial_sum(SCREAMING_SNAKE_CASE				)

														if chain_element in chain_sets_lengths:
																					chain_set_length += chain_sets_lengths[chain_element]

														_lowercase							:   str 							=   chain_set_length

														# If chain contains the exact amount of elements increase the counter
														if chain_set_length == chain_length:
																					chains_counter += 1

							return chains_counter


if __name__ == "__main__":
							import doctest

							doctest.testmod()
							print(f'''{solution()}''')





from collections import OrderedDict
from typing import List, Mapping

from packaging import version

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


a  :      Optional[int]            =    logging.get_logger(__name__)

a  :      Optional[Any]            =    {
    """google/efficientnet-b7""": """https://huggingface.co/google/efficientnet-b7/resolve/main/config.json""",
}

class 					_lowercase    (     UpperCAmelCase__			):






    '''simple docstring'''
    SCREAMING_SNAKE_CASE:				Dict          =    'efficientnet'




    def __init__(    self       ,						lowerCamelCase__ = 3       ,						lowerCamelCase__ = 600       ,						lowerCamelCase__ = 2.0       ,						lowerCamelCase__ = 3.1       ,						lowerCamelCase__ = 8       ,						lowerCamelCase__ = [3, 3, 5, 3, 5, 5, 3]       ,						lowerCamelCase__ = [32, 16, 24, 40, 80, 112, 192]       ,						lowerCamelCase__ = [16, 24, 40, 80, 112, 192, 320]       ,						lowerCamelCase__ = []       ,						lowerCamelCase__ = [1, 2, 2, 2, 1, 2, 1]       ,						lowerCamelCase__ = [1, 2, 2, 3, 3, 4, 1]       ,						lowerCamelCase__ = [1, 6, 6, 6, 6, 6, 6]       ,						lowerCamelCase__ = 0.2_5       ,						lowerCamelCase__ = "swish"       ,						lowerCamelCase__ = 2_560       ,						lowerCamelCase__ = "mean"       ,						lowerCamelCase__ = 0.0_2       ,						lowerCamelCase__ = 0.0_0_1       ,						lowerCamelCase__ = 0.9_9       ,						lowerCamelCase__ = 0.5       ,						lowerCamelCase__ = 0.2       ,						**lowerCamelCase__       ,						):
       super().__init__(**lowerCamelCase__ )

       lowerCAmelCase_:							str       =	num_channels
       lowerCAmelCase_:							str       =	image_size
       lowerCAmelCase_:							int       =	width_coefficient
       lowerCAmelCase_:							Union[str, Any]       =	depth_coefficient
       lowerCAmelCase_:							int       =	depth_divisor
       lowerCAmelCase_:							List[str]       =	kernel_sizes
       lowerCAmelCase_:							Tuple       =	in_channels
       lowerCAmelCase_:							List[str]       =	out_channels
       lowerCAmelCase_:							List[str]       =	depthwise_padding
       lowerCAmelCase_:							Optional[int]       =	strides
       lowerCAmelCase_:							List[str]       =	num_block_repeats
       lowerCAmelCase_:							Any       =	expand_ratios
       lowerCAmelCase_:							List[Any]       =	squeeze_expansion_ratio
       lowerCAmelCase_:							Optional[int]       =	hidden_act
       lowerCAmelCase_:							Optional[int]       =	hidden_dim
       lowerCAmelCase_:							Dict       =	pooling_type
       lowerCAmelCase_:							Optional[Any]       =	initializer_range
       lowerCAmelCase_:							int       =	batch_norm_eps
       lowerCAmelCase_:							List[str]       =	batch_norm_momentum
       lowerCAmelCase_:							List[Any]       =	dropout_rate
       lowerCAmelCase_:							Union[str, Any]       =	drop_connect_rate
       lowerCAmelCase_:							Tuple       =	sum(lowerCamelCase__ ) * 4





class 					_lowercase    (     UpperCAmelCase__			):






    '''simple docstring'''
    SCREAMING_SNAKE_CASE:				Optional[Any]          =    version.parse('1.11'			)




    @property
    def      _a    (    self ):
       return OrderedDict(
           [
               ("pixel_values", {0: "batch", 1: "num_channels", 2: "height", 3: "width"}),
           ] )




    @property
    def      _a    (    self ):
       return 1E-5