






import importlib.metadata
import operator
import re
import sys
from typing import Optional

from packaging import version


a						:			Optional[int]     	=					{
    "<": operator.lt,
    "<=": operator.le,
    "==": operator.eq,
    "!=": operator.ne,
    ">=": operator.ge,
    ">": operator.gt,
}






def 							lowerCamelCase__ (       __lowerCamelCase     :	List[str]    ,						__lowerCamelCase     :	List[str]    ,						__lowerCamelCase     :	str    ,						__lowerCamelCase     :	int    ,						__lowerCamelCase     :	Optional[Any]    ,						__lowerCamelCase     :	str						):
  if got_ver is None or want_ver is None:
    raise ValueError(
        f"""Unable to compare versions for {requirement}: need={want_ver} found={got_ver}. This is unusual. Consider"""
        f""" reinstalling {pkg}."""						)
  if not ops[op](version.parse(__lowerCamelCase						)    ,						version.parse(__lowerCamelCase						)						):
    raise ImportError(
        f"""{requirement} is required for a normal functioning of this module, but found {pkg}=={got_ver}.{hint}"""						)






def 							lowerCamelCase__ (       __lowerCamelCase     :	str    ,						__lowerCamelCase     :	Optional[str] = None						):
  __UpperCAmelCase				:      Optional[int]	 =    f"""\n{hint}""" if hint is not None else """"""

  # non-versioned check
  if re.match(R"""^[\w_\-\d]+$"""    ,						__lowerCamelCase						):
    __UpperCAmelCase ,					__UpperCAmelCase ,					__UpperCAmelCase				:      Union[str, Any]	 =    requirement, None, None
  else:
    __UpperCAmelCase				:      Optional[int]	 =    re.findall(R"""^([^!=<>\s]+)([\s!=<>]{1,2}.+)"""    ,						__lowerCamelCase						)
    if not match:
      raise ValueError(
          """requirement needs to be in the pip package format, .e.g., package_a==1.23, or package_b>=1.23, but"""
          f""" got {requirement}"""						)
    __UpperCAmelCase ,					__UpperCAmelCase				:      Union[str, Any]	 =    match[0]
    __UpperCAmelCase				:      str	 =    want_full.split(""","""						)  # there could be multiple requirements
    __UpperCAmelCase				:      Dict	 =    {}
    for w in want_range:
      __UpperCAmelCase				:      Optional[int]	 =    re.findall(R"""^([\s!=<>]{1,2})(.+)"""    ,						__lowerCamelCase						)
      if not match:
        raise ValueError(
            """requirement needs to be in the pip package format, .e.g., package_a==1.23, or package_b>=1.23,"""
            f""" but got {requirement}"""						)
      __UpperCAmelCase ,					__UpperCAmelCase				:      List[str]	 =    match[0]
      __UpperCAmelCase				:      Optional[Any]	 =    want_ver
      if op not in ops:
        raise ValueError(f"""{requirement}: need one of {list(ops.keys()						)}, but got {op}"""						)

    # special case
  if pkg == "python":
    __UpperCAmelCase				:      Optional[Any]	 =    """.""".join([str(__lowerCamelCase						) for x in sys.version_info[:3]]						)
    for op, want_ver in wanted.items():
      _compare_versions(__lowerCamelCase    ,						__lowerCamelCase    ,						__lowerCamelCase    ,						__lowerCamelCase    ,						__lowerCamelCase    ,						__lowerCamelCase						)
    return

  # check if any version is installed
  try:
    __UpperCAmelCase				:      Union[str, Any]	 =    importlib.metadata.version(__lowerCamelCase						)
  except importlib.metadata.PackageNotFoundError:
    raise importlib.metadata.PackageNotFoundError(
        f"""The '{requirement}' distribution was not found and is required by this application. {hint}"""						)

  # check that the right version is installed if version number or a range was provided
  if want_ver is not None:
    for op, want_ver in wanted.items():
      _compare_versions(__lowerCamelCase    ,						__lowerCamelCase    ,						__lowerCamelCase    ,						__lowerCamelCase    ,						__lowerCamelCase    ,						__lowerCamelCase						)







def 							lowerCamelCase__ (       __lowerCamelCase     :	List[Any]						):
  __UpperCAmelCase				:      Union[str, Any]	 =    """Try: pip install transformers -U or pip install -e '.[dev]' if you're working with git main"""
  return require_version(__lowerCamelCase    ,						__lowerCamelCase						)




def       _SCREAMING_SNAKE_CASE   (						_lowerCamelCase					:     int)   ->       int:






							'''simple docstring'''





							__UpperCamelCase      :  Tuple       =   1
							for i in range(1		,    num + 1):
														fact *= i
							return fact




def       _SCREAMING_SNAKE_CASE   (						_lowerCamelCase					:     int)   ->       int:






							'''simple docstring'''





							__UpperCamelCase      :  Dict       =   0
							while number > 0:
														__UpperCamelCase      :  List[Any]       =   number % 10
														sum_of_digits += last_digit
														__UpperCamelCase      :  List[Any]       =   number // 10  # Removing the last_digit from the given number
							return sum_of_digits




def       _SCREAMING_SNAKE_CASE   (						_lowerCamelCase					:     int = 100)   ->       int:






							'''simple docstring'''





							__UpperCamelCase      :  Optional[Any]       =   factorial(_lowerCamelCase)
							__UpperCamelCase      :  Tuple       =   split_and_add(_lowerCamelCase)
							return result


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