
def      __lowerCAmelCase						(							UpperCAmelCase__				:      int = 2_0_0       )  ->    int:
							lowerCamelCase_							  =					[1, 2, 5, 1_0, 2_0, 5_0, 1_0_0, 2_0_0]
							lowerCamelCase_							  =					[0] * (pence + 1)
							lowerCamelCase_							  =					1  # base case: 1 way to make 0 pence

							for coin in coins:
														for i in range(UpperCAmelCase__			,				pence + 1			,				1       ):
																					number_of_ways[i] += number_of_ways[i - coin]
							return number_of_ways[pence]


if __name__ == "__main__":
		assert solution(2_0_0) == 7_3_6_8_2







from abc import ABC, abstractmethod
from argparse import ArgumentParser





class       __A(				UpperCAmelCase       ):

					@staticmethod
					@abstractmethod
					def    lowercase__      (	__UpperCamelCase					:     ArgumentParser   ):
												raise NotImplementedError()



					@abstractmethod
					def    lowercase__      (	self					:     Any   ):
												raise NotImplementedError()





