



"""simple docstring"""





def 	__UpperCAmelCase					(       snake_case_  :  str   )							->	int:






   """simple docstring"""


   _lowerCAmelCase					     =		str(snake_case_   ).strip()
   if not oct_string:
      raise ValueError("""Empty string was passed to the function"""   )
   _lowerCAmelCase					     =		oct_string[0] == """-"""
   if is_negative:
      _lowerCAmelCase					     =		oct_string[1:]
   if not oct_string.isdigit() or not all(0 <= int(snake_case_   ) <= 7 for char in oct_string   ):
      raise ValueError("""Non-octal value was passed to the function"""   )
   _lowerCAmelCase					     =		0
   for char in oct_string:
      _lowerCAmelCase					     =		8 * decimal_number + int(snake_case_   )
   if is_negative:
      _lowerCAmelCase					     =		-decimal_number
   return decimal_number


if __name__ == "__main__":
  from doctest import testmod

  testmod()




"""simple docstring"""





def 	__UpperCAmelCase					(       snake_case_  :  Optional[int]   ,	snake_case_  :  List[str]   )							->	Optional[int]:






   """simple docstring"""


   if n < 0:
      return 0
   # table[i] represents the number of ways to get to amount i
   _lowerCAmelCase					     =		[0] * (n + 1)

   # There is exactly 1 way to get to zero(You pick no coins).
   _lowerCAmelCase					     =		1

   # Pick all coins one by one and update table[] values
   # after the index greater than or equal to the value of the
   # picked coin
   for coin_val in s:
      for j in range(snake_case_   ,	n + 1   ):
         table[j] += table[j - coin_val]

   return table[n]


if __name__ == "__main__":
  import doctest

  doctest.testmod()