바이트아사르는 바이트홀에서 바이트핏까지 택시로 이동하려고 합니다. 두 마을 사이의 거리는 m 킬로미터입니다. 바이트홀에서 바이트핏 방향으로 정확히 d 킬로미터 떨어진 지점에는 택시 n대가 대기하는 차고지가 있으며, 택시에는 1번부터 n번까지 번호가 매겨져 있습니다. i번 택시에는 정확히 xi 킬로미터를 달릴 수 있는 연료가 들어 있습니다.
바이트아사르는 경로 위 어느 지점에서든 택시를 갈아탈 수 있습니다. 모든 택시는 차고지에서 출발하지만, 차고지로 다시 돌아올 필요는 없습니다. 바이트아사르가 바이트홀에서 바이트핏까지 이동할 수 있는지 판단하고, 가능하다면 그 여정에 필요한 택시의 최소 대수를 구하세요.
첫째 줄에 세 정수 m, d, n이 공백 하나로 구분되어 주어집니다 (1≤d≤m≤1018, 1≤n≤500,000). 각각 바이트홀에서 바이트핏까지의 거리, 바이트홀에서 차고지까지의 거리, 차고지에 있는 택시의 수를 의미합니다.
둘째 줄에 n개의 정수 x1,x2,…,xn이 공백 하나로 구분되어 주어집니다 (1≤xi≤1018). xi는 i번 택시가 달릴 수 있는 최대 거리(킬로미터)입니다.
바이트아사르가 바이트홀에서 바이트핏까지 가는 데 필요한 택시의 최소 대수를 정수 하나로 출력하세요. 이동이 불가능하다면 0을 출력하세요.