#include
#include <iostream>
#include<algorithm>
using namespace std;
int FindMinIndex(vector<int> nums){
int minPosition = min_element(nums.begin(), nums.end()) - nums.begin();
return minPosition;
}
int main()
{
vector<int> d0;
int L, M,N;
cin >> L >> N >> M;
for (int i = 0; i < N; i++)
{
int tmp;
cin >> tmp;
d0.push_back(tmp);
}
d0.push_back(L);
vector<int> d1;
int pred = 0;
for (int i = 0; i <= N; i++)
{
d1.push_back(d0[i] - pred);
pred = d0[i];
}
for (int i = 0; i < M; i++)
{
int j=FindMinIndex(d1);
if (j == N - 1)
{
d1[j - 1] += d1[j];
d1.erase(d1.begin() + j);
}
else if (j>0&&(d1[j - 1] < d1[j + 1]))
{
d1[j - 1] += d1[j];
d1.erase(d1.begin()+j);
}
else
{
d1[j + 1] += d1[j];
d1.erase(d1.begin() + j);
}
}
cout << d1[FindMinIndex(d1)];
}