#include<bits/stdc++.h>
using namespace std;
int a[50010],r,n,m;
bool dfs(int d,int y)
{
int x = 0;
bool f = 0;
for(int i=0;i<=n;i++){
x = i+1;
while(a[x] - a[i] < d && x <= n){
if(y == 0) return 0;
--y;
++x;
}
if(a[x] - a[i] < d) return 0;
if(a[x] - a[i] == d) f = 1;
i = x-1;
}
return f;
}
int main()
{
cin>>r>>n>>m;
a[0]=0;
a[n+1]=r;
for(int i=1;i<=n;i++) cin>>a[i];
int l=0;
while(l<=r)
{
int i=(l+r)>>1;
if(dfs(i,m)) l=i+1;
else r=i-1;
}
cout<<l-1;
}