#include <bits/stdc++.h>
using namespace std;
int n,m,len,a[50010];
bool check(int dis)
{
int k=0,move=0;
for (int i=1; i<=n+1; i++)
{
if (a[i]-a[k]<dis)
{
move++;
}
else
{
k=i;
}
if (move>m)
{
return false;
}
}
if (a[n+1]-a[k]<dis && k!=n+1)
{
return false;
}
return true;
}
int main()
{
cin>>len>>n>>m;
for (int i=1; i<=n; i++)
{
cin>>a[i];
}
a[n+1]=len;
sort(a+1,a+n+2);
int l=1,r=len,ans;
while (l<=r)
{
int mid=(l+r)/2;
if (check(mid))
{
ans=mid;
l=mid+1;
}
else
{
r=mid-1;
}
}
cout<<ans;
return 0;
}
WA on subtask 1 #11