import sys from typing import Iterator def iter_combinations(value: int, containers: list[int]) -> Iterator[tuple[int, ...]]: if value < 0: return if value == 0: yield () for i in range(len(containers)): for combination in iter_combinations( value - containers[i], containers[i + 1 :] ): yield (containers[i],) + combination containers = [int(c) for c in sys.stdin.read().split()] total = 25 if len(containers) <= 5 else 150 combinations = [combination for combination in iter_combinations(total, containers)] answer_1 = len(combinations) print(f"answer 1 is {answer_1}") min_containers = min(len(combination) for combination in combinations) answer_2 = sum(1 for combination in combinations if len(combination) == min_containers) print(f"answer 2 is {answer_2}")