"""simple docstring"""






def 						a_		(      lowerCamelCase = 2_0_0 ):
				UpperCAmelCase__    =							[1, 2, 5, 1_0, 2_0, 5_0, 1_0_0, 2_0_0]
				UpperCAmelCase__    =							[0] * (pence + 1)
				UpperCAmelCase__    =							1  # base case: 1 way to make 0 pence

				for coin in coins:
								for i in range(lowerCamelCase      ,    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




"""simple docstring"""






from __future__ import annotations

import collections
import pprint
from pathlib import Path



def 						a_		(      lowerCamelCase ):
				return "".join(sorted(lowerCamelCase ) )



def 						a_		(      lowerCamelCase ):
				return word_by_signature[signature(lowerCamelCase )]


lowerCAmelCase__						:						str		  =			Path(__file__).parent.joinpath('words.txt').read_text(encoding='utf-8')
lowerCAmelCase__						:						str		  =			sorted({word.strip().lower() for word in data.splitlines()})

lowerCAmelCase__						:						Optional[Any]		  =			collections.defaultdict(list)
for word in word_list:
						word_by_signature[signature(word)].append(word)

if __name__ == "__main__":
						lowerCAmelCase__						:						int		  =			{word: anagram(word) for word in word_list if len(anagram(word)) > 1}

						with open('anagrams.txt', 'w') as file:
												file.write('all_anagrams = \n ')
												file.write(pprint.pformat(all_anagrams))



