죄수에게 주는 뇌물

P개의 감방 중 지정된 Q명의 죄수를 풀어줄 때, 소문이 닿는 이웃 죄수에게 주는 뇌물의 총합이 최소가 되는 순서를 찾아 그 최솟값을 구한다.

보통7동적 계획법구간분할 정복면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

감옥에 방 PP개가 한 줄로 늘어서 있다. 왼쪽 방부터 차례로 1,2,,P1, 2, \dots, P번이다. 모든 방은 독방이고 각 방에 죄수 한 명이 수감되어 있다. 이웃한 두 방 사이에는 창문이 있어서 옆방 죄수와 이야기를 주고받는다.

어떤 방의 죄수를 석방하면 바로 옆방 죄수가 그 사실을 알고 난동을 부린다. 그래서 한 명을 석방할 때는 양옆 방의 죄수에게 각각 금화 한 장을 뇌물로 줘야 한다. 소식은 창문을 거쳐 계속 옆으로 전해지므로, 소식이 닿는 죄수 전원에게 금화를 줘야 한다. 이미 비어 있는 방에는 소식을 전할 죄수가 없으니 소식은 그 방에서 끊긴다.

오늘 A1,A2,,AQA_1, A_2, \dots, A_Q번 방에 있는 죄수 QQ명을 석방한다. 석방하는 순서에 따라 드는 금화가 달라진다. 금화를 가장 적게 쓰는 순서를 찾아 그때 필요한 금화의 개수를 구하자.

입력

첫째 줄에 정수 PPQQ가 공백으로 구분되어 주어진다. (1P100001 \le P \le 10\,000, 1Q1001 \le Q \le 100, QPQ \le P)

둘째 줄에 정수 QQA1,A2,,AQA_1, A_2, \dots, A_Q가 공백으로 구분되어 주어진다. 각 수는 석방할 죄수의 방 번호이고, 같은 번호가 두 번 주어지는 경우는 없다. (1AiP1 \le A_i \le P)

출력

죄수 QQ명을 모두 석방할 때 드는 금화의 최소 개수를 한 줄에 출력한다.