#include<bits/stdc++.h>
using namespace std;
bool f(int b);
int moving(int x);
int l,n,m,rock[50005]={1,0};
int main(){
scanf("%d%d%d",&l,&n,&m);
for(int i=1;i<=n;i++){
scanf("%d",&rock[i+1]);
}
rock[n+2]=l;
int answer=moving(l);
printf("%d",answer);
}
bool f(int b){
int num=0,i=1;
while(i<=n+1){
if(rock[i+1]-rock[i]<=b){
num++;
i=i+2;
}
else i++;
}
if(num>b) return 0;
else return 1;
}
int moving(int x){
int l=0,r=x+1,mid;
while(r>l){
mid=(r+l)/2;
if(f(mid)) l=mid;
else r=mid;
}
return l;
}