import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
StreamTokenizer scan = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
scan.nextToken();
int n = (int)scan.nval;
scan.nextToken();
int k = (int)scan.nval;
int[] nums = new int[k+1];
for (int i = 1; i <= k; i ++) {
scan.nextToken();
nums[i] = (int)scan.nval;
}
int res = -1;
int low = 1;
int high = n*2;
Arrays.sort(nums);
while (low <= high) {
int mid = (low + high) / 2;
int left = 0;
for (int i = 1; i <= k; i ++) {
left = Math.min(left, nums[i]);
int temp = mid;
if (left < nums[i])
temp -= (nums[i]-(left+1))*2;
if (temp < 0) {
low = mid + 1;
break;
}
left = temp/2+nums[i];
}
if (left >= n){
res = mid;
high = mid - 1;
}
else
low = mid + 1;
}
System.out.println(res);
}
}
有没有大佬帮我看看对不对