





"""simple docstring"""






import numpy as np

A 			=  [
    ["a", "b", "c", "d", "e"],
    ["f", "g", "h", "i", "k"],
    ["l", "m", "n", "o", "p"],
    ["q", "r", "s", "t", "u"],
    ["v", "w", "x", "y", "z"],
]




class 				__lowercase			:







					'''simple docstring'''




					def __init__(						self     ):
									__a :						str			       =  np.array(__UpperCamelCase     )







					def  _lowerCamelCase		(						self	,			_UpperCAmelCase     ):
									__a       ,						__a :						Any			       =  np.where(letter == self.SQUARE     )
									__a :						List[str]			       =  np.concatenate([indexa + 1, indexa + 1]     )
									return indexes







					def  _lowerCamelCase		(						self	,			_UpperCAmelCase	,			_UpperCAmelCase     ):
									__a :						Optional[int]			       =  self.SQUARE[indexa - 1, indexa - 1]
									return letter







					def  _lowerCamelCase		(						self	,			_UpperCAmelCase     ):
									__a :						Tuple			       =  message.lower()
									__a :						str			       =  message.replace(''' '''	,			''''''     )
									__a :						List[Any]			       =  message.replace('''j'''	,			'''i'''     )

									__a :						Tuple			       =  np.empty((2, len(__UpperCamelCase     ))     )
									for letter_index in range(len(__UpperCamelCase     )     ):
													__a :						Optional[int]			       =  self.letter_to_numbers(message[letter_index]     )

													__a :						List[str]			       =  numbers[0]
													__a :						Any			       =  numbers[1]

									__a :						List[Any]			       =  first_step.reshape(2 * len(__UpperCamelCase     )     )
									__a :						Any			       =  ''''''
									for numbers_index in range(len(__UpperCamelCase     )     ):
													__a :						Tuple			       =  int(second_step[numbers_index * 2]     )
													__a :						List[Any]			       =  int(second_step[(numbers_index * 2) + 1]     )
													__a :						Dict			       =  self.numbers_to_letter(__UpperCamelCase	,			__UpperCamelCase     )
													__a :						Union[str, Any]			       =  encoded_message + letter

									return encoded_message







					def  _lowerCamelCase		(						self	,			_UpperCAmelCase     ):
									__a :						List[str]			       =  message.lower()
									message.replace(''' '''	,			''''''     )
									__a :						List[str]			       =  np.empty(2 * len(__UpperCamelCase     )     )
									for letter_index in range(len(__UpperCamelCase     )     ):
													__a :						Union[str, Any]			       =  self.letter_to_numbers(message[letter_index]     )
													__a :						str			       =  numbers[0]
													__a :						int			       =  numbers[1]

									__a :						Any			       =  first_step.reshape((2, len(__UpperCamelCase     ))     )
									__a :						str			       =  ''''''
									for numbers_index in range(len(__UpperCamelCase     )     ):
													__a :						Optional[Any]			       =  int(second_step[0, numbers_index]     )
													__a :						str			       =  int(second_step[1, numbers_index]     )
													__a :						Union[str, Any]			       =  self.numbers_to_letter(__UpperCamelCase	,			__UpperCamelCase     )
													__a :						Any			       =  decoded_message + letter

									return decoded_message






"""simple docstring"""






def     __A      (			a_						:int = 2_00)		->		int:
				__a :						int			       =  [1, 2, 5, 10, 20, 50, 1_00, 2_00]
				__a :						List[Any]			       =  [0] * (pence + 1)
				__a :						Tuple			       =  1  # base case: 1 way to make 0 pence

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


if __name__ == "__main__":
		assert solution(200) == 73_682