##### DWITE Online Computer Programming Contest, December 2008, Problem 4

Coin change that is.

In an attempt to make the jobs of cashiers easier (and more accurate!), lets write a tool that will figure out the least amount of coins necessary to dispense the *exact* change.

The caveat is that the tool needs to be *dynamic*, and be able to work with foreign currencies.

The input will contain 5 sets of input. The first line of the set will be the amount needed to be dispensed, an integer . The second line of the set will be the number of coin types, an integer . Followed by lines of coin values, each a unique integer .

The output will contain 5 integers, the minimum number of coins required to make *exact* change for each input set.

*Note:* being *greedy* will give part marks. A *dynamic* solution is required to pass all 5 test cases.

*Explanation of sample input; second set*: There are three coin types: 25, 10, and 4 (note that input is not necessary in descending order). It's possible to put together an exact change for 37 in 4 coins --

#### Sample Input

```
66
4
25
10
5
1
37
3
10
25
4
```

#### Sample Output

```
5
4
```

## Comments

What does it mean by greedy and dynamic solution?