Fearsome William is still free, and the Police is searching him in Murder Boulevard!
This street is meters long, and currently William is at , trying to reach his nest at .
Along this street there are semaphores at positions .
All the traffic lights are synchronized: at the green triggers, and will stay green for seconds; at the red triggers, and will stay red for seconds; and then the cycle repeats.
William wants to reach his nest as quickly as possible, but he doesn't want to attract too much attention.
Therefore, he travels at a constant speed of meter per second (the speed limit), and he will stop and wait if he's at a red semaphore.
Since he's very impatient, sometimes he may cross the red semaphore without waiting for the green, but he can do so at most times.
Which is the least amount of time William needs to reach his nest?
Input data
The first line of the input contains 4 integers: (the number of semaphores), (the number of semaphores William can skip), (the half-period of the semaphores), and (the length of the street).
The second line contains integers: the coordinates .
Output data
The output contains a single line with an integer: the minimum time in seconds that will be needed to reach the nest.
Constraints and clarifications
- , for each semaphore
- for each from to
- For tests worth 10 points, .
- For tests worth 15 more points, .
- For tests worth 15 more points, and .
- For tests worth 25 more points, and .
- For tests worth 15 more points, .
Example 1
stdin
3 1 3 10
1 5 9
stdout
11
Explanation
In the first sample case there are 3 semaphores, of which 1 can be skipped. When William reaches the first semaphore he finds it green, so it will pass.
Then at he reaches the second semaphore (at ), but it is red (since ).
He has two choices: wait 1 second that it becomes green, or skip the semaphore.
If he waits, he will start again at , will reach the last semaphore (at ) and will skip it since it is red and he still has skip remaining. He reaches his nest at .
If he skips it, he will reach the last semaphore at , but it is red (it just became red). There he has to wait 3 seconds that it becomes green again, leaving it at . He reaches his nest at .
Therefore, the best solution is to wait at the second semaphore and skip the last one, reaching the nest in 11 seconds.
Example 2
stdin
1 0 5 10
5
stdout
15
Explanation
In the second sample case there is only one semaphore.
When William reaches it he finds it red (it just became red), and he will wait since he doesn't have any skip available.