



from ...configuration_utils import PretrainedConfig
from ...utils import logging
from ...utils.backbone_utils import BackboneConfigMixin, get_aligned_output_features_output_indices


__snake_case    :		List[Any]  =logging.get_logger(__name__)

__snake_case    :		Tuple  ={
    """shi-labs/nat-mini-in1k-224""": """https://huggingface.co/shi-labs/nat-mini-in1k-224/resolve/main/config.json""",
    # See all Nat models at https://huggingface.co/models?filter=nat
}



class 	lowerCamelCase__      (							SCREAMING_SNAKE_CASE_				,    SCREAMING_SNAKE_CASE_):




		'''simple docstring'''



		snake_case_     ="""nat"""

		snake_case_     ={
		    """num_attention_heads""": """num_heads""",
		    """num_hidden_layers""": """num_layers""",
		}



		def __init__(self		,__lowerCamelCase=4		,__lowerCamelCase=3		,__lowerCamelCase=64		,__lowerCamelCase=[3, 4, 6, 5]		,__lowerCamelCase=[2, 4, 8, 16]		,__lowerCamelCase=7		,__lowerCamelCase=3.0		,__lowerCamelCase=True		,__lowerCamelCase=0.0		,__lowerCamelCase=0.0		,__lowerCamelCase=0.1		,__lowerCamelCase="gelu"		,__lowerCamelCase=0.02		,__lowerCamelCase=1e-5		,__lowerCamelCase=0.0		,__lowerCamelCase=None		,__lowerCamelCase=None		,**__lowerCamelCase		,)					->      List[Any]:

						"""simple docstring"""






						super().__init__(**snake_case__			)

						lowerCAmelCase__					:    Union[str, Any]												=					patch_size
						lowerCAmelCase__					:    List[str]												=					num_channels
						lowerCAmelCase__					:    Tuple												=					embed_dim
						lowerCAmelCase__					:    Any												=					depths
						lowerCAmelCase__					:    Dict												=					len(snake_case__			)
						lowerCAmelCase__					:    str												=					num_heads
						lowerCAmelCase__					:    Dict												=					kernel_size
						lowerCAmelCase__					:    Union[str, Any]												=					mlp_ratio
						lowerCAmelCase__					:    int												=					qkv_bias
						lowerCAmelCase__					:    Optional[Any]												=					hidden_dropout_prob
						lowerCAmelCase__					:    Union[str, Any]												=					attention_probs_dropout_prob
						lowerCAmelCase__					:    List[str]												=					drop_path_rate
						lowerCAmelCase__					:    Union[str, Any]												=					hidden_act
						lowerCAmelCase__					:    Tuple												=					layer_norm_eps
						lowerCAmelCase__					:    Dict												=					initializer_range
						# we set the hidden_size attribute in order to make Nat work with VisionEncoderDecoderModel
						# this indicates the channel dimension after the last stage of the model
						lowerCAmelCase__					:    str												=					int(embed_dim * 2 ** (len(snake_case__			) - 1)			)
						lowerCAmelCase__					:    Any												=					layer_scale_init_value
						lowerCAmelCase__					:    Any												=					['stem'] + [f"""stage{idx}""" for idx in range(1		,len(snake_case__			) + 1			)]
						lowerCAmelCase__					:    str												=					get_aligned_output_features_output_indices(
						    out_features=snake_case__		,out_indices=snake_case__		,stage_names=self.stage_names			)






from math import factorial






def      lowerCAmelCase__		(   lowerCamelCase_		:		int = 100):





				'''simple docstring'''

				return sum(map(lowerCamelCase_	,str(factorial(lowerCamelCase_))))


if __name__ == "__main__":
							print(solution(int(input('Enter the Number: ').strip())))

