#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long l,m,n;
int a[50009];
int b[50009];
long long ans=0;
void find(long long l,long long r)
{
if(l==r)
return;
long long mid=(l+r)/2;
long long tot=0;
for(int i=1;i<=n+1;i++)
{
if(b[i]<mid)
{
long long cao=b[i];
while(cao<=mid&&i<=n+1)
{
i++;
cao=cao+b[i];
tot++;
}
}
}
if(tot>m)
{
find(l,mid);
}
if(tot<=m)
{
ans=mid;
find(mid+1,r);
}
}
int main()
{
cin>>l>>n>>m;
a[1]=0;
for(int i=2;i<=n+1;i++)
cin>>a[i];
a[n+2]=l;
for(int i=2;i<=n+2;i++)
{
b[i-1]=a[i]-a[i-1];
}
//for(int i=1;i<=n+1;i++)
//cout<<b[i]<<" ";
find(1,1000000001);
cout<<ans;
}