Under construction

Still being built. Things may change

Flip Flow

Interview

Time limit1sMemory limit512 MB

Summary
An hourglass starts with all sand at the bottom, is flipped at given times, and you report how long after time t the sand finishes returning to the bottom.
Level

Medium4 of 10

Topics
Simulation, Implementation, Math, Prefix sum
Solved
No attempts yet

Problem

For over 600 years, the hourglass has been a well-known timekeeping instrument. An hourglass consists of two glass flasks arranged one above the other, connected by a narrow channel. Inside the hourglass there is sand which slowly flows from the upper to the lower flask. Hourglasses are typically symmetrical so that the sand always takes the same amount of time to run through, regardless of orientation. For the purposes of this problem, we also assume that the flow rate of the sand is a known constant and does not depend on the amount or distribution of sand in the upper half.

Your friend Helen was bored and has been playing around with her hourglass. At time 00, all the sand was in the lower half. Helen flipped the hourglass over several times and recorded all the moments at which she did so. How many seconds does she need to wait from the current time until all the sand is back in the lower half?

Input

The input consists of:

  • One line with three integers tt, ss and nn, where
    • tt (1≤t≤1061 \le t \le 10^6) is the current time;
    • ss (1≤s≤1061 \le s \le 10^6) is the amount of sand in the hourglass, in grams;
    • nn (1≤n≤1 0001 \le n \le 1\,000) is the number of times the hourglass was flipped.
  • One line with nn integers a1,…,ana_1,\dots,a_n (0<a1<⋯<an<t0 < a_1 < \dots < a_n < t), the times at which the hourglass was flipped.

All times are given in seconds. You may assume that the sand flows from the top to the bottom at a constant rate of 11 gram per second.

Output

Output the time in seconds needed for the hourglass to run out starting from time tt.

Examples3

  1. Example 1

    Input
    10 7 2
    4 9
    
    Expected output
    4
    
  2. Example 2

    Input
    2000 333 3
    1000 1250 1500
    
    Expected output
    0
    
  3. Example 3

    Input
    100 10 5
    15 20 93 96 97
    
    Expected output
    5