





"""simple docstring"""


def 	a__			(  _UpperCAmelCase	,     _UpperCAmelCase	)    ->  Tuple:

 '''simple docstring'''






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

 # There is exactly 1 way to get to zero(You pick no coins).
 snake_case__    							=				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(_UpperCAmelCase	,     n + 1	):
   table[j] += table[j - coin_val]

 return table[n]


if __name__ == "__main__":
   import doctest

   doctest.testmod()








"""simple docstring"""


def 							a__			(  _UpperCAmelCase = 1_0_0_0	)    ->  int:

 '''simple docstring'''






 snake_case__    							=				[]
 snake_case__    							=				[]
 snake_case__    							=				3
 snake_case__    							=				5
 snake_case__    							=				1
 while True:
  snake_case__    							=				z * temp
  if result < n:
   zmulti.append(_UpperCAmelCase	)
   temp += 1
  else:
   snake_case__    							=				1
   break
 while True:
  snake_case__    							=				x * temp
  if result < n:
   xmulti.append(_UpperCAmelCase	)
   temp += 1
  else:
   break
 snake_case__    							=				list(set(xmulti + zmulti	)	)
 return sum(_UpperCAmelCase	)


if __name__ == "__main__":
   print(f'''{solution() = }''')

