#include<iostream>
#include<cstdio>
using namespace std;
int L,n, M;
const int N = 1e5 + 10;
int a[N];
bool check(int mid)
{
int cnt = 0,now = 0;
for (int i = 0; i < n; i++)
{
if (a[i]-now<mid)
{
cnt++;
}
else
{
now = a[i];
}
}
return cnt <= M;
}
int binary_search(int l,int r)
{
while (l <= r)
{
int mid = (l + r) >> 1;
if (check(mid))
{
l=mid+1;
}
else
{
r = mid -1;
}
}
return r;
}
int main()
{
cin >> L >> n >> M;
int ans, max = 0;
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
cout << binary_search(1,L)<< endl;
}