Problem M: 동국대 파이썬프로그래밍 기초 중간고사 12번

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

동국이는 최근 오래된 비디오 게임을 발견했다. 그 게임의 스크린은 A개의 열(세로줄)로 나뉘어져 있으며, 화면의 밑에는 B(A보다 작은)크기의 보트가 존재한다.
플레이어는 이 보트를 왼쪽 혹은 오른쪽으로 움직일 수 있다. 하지만 이 보트는 화면의 왼쪽 끝과 오른쪽 끝을 넘어갈 수는 없다. 이 보트는 처음 시작할 때 화면 왼쪽의 B칸만큼을 차지하고 있다. 
게임이 시작되면 바나나가 화면의 꼭대기에서 떨어진다. 각각의 바나나들은 N번째 칸에서 떨어지기 시작하며, 그대로 화면 아래쪽까지 떨어진다. 
하나의 바나나가 바닥에 떨어지면, 그 후 다음 바나나가 화면의 꼭대기에서부터 다시 떨어지기 시작한다. 


만약, 보트가 바나나가 떨어지는 위치에 서있다면, 보트는 바나나를 받을 수 있다.
동국이는 이 게임을 통해 모든 바나나를 보트에 받으려고 한다. 


보트가 이동해야 하는 거리의 최소값을 구하는 코드를 작성해보세요.

Input

첫째 줄에 A와 B가 주어집니다. (1 ≤ B < A ≤ 10) 둘째 줄에 떨어지는 바나나의 개수 C가 주어집니다. (1 ≤ C ≤ 20) 다음 C개 줄에는 바나나가 떨어지는 위치가 순서대로 주어집니다.

Output

모든 바나나를 담기 위해서 보트가 이동해야 하는 거리의 최소값을 출력합니다.

Sample Input Copy

5 1
3
1
5
3

Sample Output Copy

6