#include <iostream>
#include <vector>
#include <map>
#include<algorithm>
#include<cstdio>
#include<cmath>
using namespace std;
long long L, n, m, ans;vector<long long> v, u;
int ccmax(vector<long long> u) {
long long z = u[0];
for (long long i = 0;i < u.size();i++)
if (u[i] > z)z = u[i];
return z;
}
int main()
{
cin >> L >> n >> m;
for (long long i = 0;i < n;i++) {
long long a;cin >> a;
v.push_back(a);
}
for (long long i = 0;i < n - 1;i++) {
u.push_back(v[i + 1] - v[i]);
}
for (long long i = 0;i < m;i++) {
ans = ccmax(u);
auto it = find(u.begin(), u.end(), ans);
*it = (ans + 1) / 2;
}
ans = ccmax(u);
cout << ans;
return 0;
}