CSES - Smallest count

You are given n coin values and a sum x. How many ways can you choose the coins so that they sum up to x and so that the number of coins is the smallest possible?

You may assume that 1 \le n \le 10 and that 1 \le x \le 100. One of the coin values is always 1. The algorithm should be efficient in all these cases.

In a file minways.py, implement a function count that returns the desired count.

def count(x, coins):
    # TODO

if __name__ == "__main__":
    print(count(5, [1])) # 1
    print(count(5, [1, 2, 3, 4])) # 4
    print(count(13, [1, 2, 5])) # 12
    print(count(42, [1, 5, 6, 17])) # 30

Explanation: When x=5 and the coin values are [1,2,3,4], there are 4 different ways: [1,4], [2,3], [3,2] and [4,1].