Grinding Gravel
문제
During the renovation of your garden, you decide that you want a gravel path running from the street to your front door. Being a member of the Boulders And Pebbles Community, you want this path to look perfect. You already have a regular grid to put the gravel in, as well as a large container of gravel containing exactly as much as the total capacity of the grid.
There is one problem: the gravel does not yet fit perfectly into the grid. Each grid cell has the same (fixed) capacity and every piece of gravel has a certain weight. You have a grindstone that can be used to split the stones into multiple pieces, but doing so takes time, so you want to do a minimal number of splits such that the gravel can be exactly distributed over the grid.
As an example, consider the first sample case. There are three grid cells of size , which can be filled as follows. Put the stones of weight and in the first cell. Now grind the stone of weight into two pieces of weight and . Then the other two grid cells get filled by weights and respectively.
입력
The input consists of:
- One line with two integers and (, ), the number of pieces of gravel and the capacity per grid cell.
- One line with integers ( for all ), the weight of each piece of gravel.
It is guaranteed that is a multiple of .
출력
Output the minimal number of times a stone needs to be split into two, such that all the pieces of gravel can be used to fill all the grid cells perfectly.
예제
예제 1
5 8 2 4 5 6 7
1
예제 2
2 5 12 13
4