

"""simple docstring"""


from abc import ABC, abstractmethod
from typing import Optional, Union

from .. import Dataset, DatasetDict, Features, IterableDataset, IterableDatasetDict, NamedSplit
from ..utils.typing import NestedDataStructureLike, PathLike





class     snake_case	(				__snake_case  ):

				def __init__(	self							:				Optional[int]     ,  UpperCamelCase__							:				Optional[NestedDataStructureLike[PathLike]] = None     ,  UpperCamelCase__							:				Optional[NamedSplit] = None     ,  UpperCamelCase__							:				Optional[Features] = None     ,  UpperCamelCase__							:				str = None     ,  UpperCamelCase__							:				bool = False     ,  UpperCamelCase__							:				bool = False     ,  UpperCamelCase__							:				Optional[int] = None     ,  **UpperCamelCase__							:				int     ,  )->   Dict:



						'''simple docstring'''


						__lowerCAmelCase:       Tuple          =			path_or_paths
						__lowerCAmelCase:       List[str]          =			split if split or isinstance(UpperCamelCase__     ,  UpperCamelCase__) else "train"
						__lowerCAmelCase:       Union[str, Any]          =			features
						__lowerCAmelCase:       Dict          =			cache_dir
						__lowerCAmelCase:       Any          =			keep_in_memory
						__lowerCAmelCase:       str          =			streaming
						__lowerCAmelCase:       Optional[Any]          =			num_proc
						__lowerCAmelCase:       str          =			kwargs




				@abstractmethod
				def 							lowercase_     (	self							:				int)->   Union[Dataset, DatasetDict, IterableDataset, IterableDatasetDict]:



						'''simple docstring'''


						pass





class     snake_case	(				__snake_case  ):

				def __init__(	self							:				int     ,  UpperCamelCase__							:				Optional[Features] = None     ,  UpperCamelCase__							:				str = None     ,  UpperCamelCase__							:				bool = False     ,  UpperCamelCase__							:				bool = False     ,  UpperCamelCase__							:				Optional[int] = None     ,  **UpperCamelCase__							:				List[str]     ,  )->   List[Any]:



						'''simple docstring'''


						__lowerCAmelCase:       List[Any]          =			features
						__lowerCAmelCase:       Tuple          =			cache_dir
						__lowerCAmelCase:       List[str]          =			keep_in_memory
						__lowerCAmelCase:       Optional[Any]          =			streaming
						__lowerCAmelCase:       List[Any]          =			num_proc
						__lowerCAmelCase:       str          =			kwargs




				@abstractmethod
				def 							lowercase_     (	self							:				Tuple)->   Union[Dataset, IterableDataset]:



						'''simple docstring'''


						pass





"""simple docstring"""


def     a__    (    __SCREAMING_SNAKE_CASE )	->	int:
		__lowerCAmelCase:       Optional[Any]          =			1
		for i in range(1					, num + 1 ):
				fact *= i
		return fact






def     a__    (    __SCREAMING_SNAKE_CASE )	->	int:
		__lowerCAmelCase:       List[str]          =			0
		while number > 0:
				__lowerCAmelCase:       Any          =			number % 1_0
				sum_of_digits += last_digit
				__lowerCAmelCase:       List[Any]          =			number // 1_0  # Removing the last_digit from the given number
		return sum_of_digits






def     a__    (    __SCREAMING_SNAKE_CASE = 1_0_0 )	->	int:
		__lowerCAmelCase:       Tuple          =			factorial(__SCREAMING_SNAKE_CASE )
		__lowerCAmelCase:       Optional[int]          =			split_and_add(__SCREAMING_SNAKE_CASE )
		return result


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


