#include <bits/stdc++.h>
using namespace std;
typedef long long i64;
typedef unsigned long long u64;
typedef long long ll;
//const int MOD = 1e9 + 7;
const int MOD = 998244353;
int _t = 1;
void solve() {
ios::sync_with_stdio(false);
cin.tie(0);
ll n, m, k;
cin >> n >> m >> k;
set <ll> vis;
while(n--) {
ll x;
cin >> x;
vis.insert(x);
}
vector <ll> a(vis.begin(),vis.end());
ll res = 1;
for(int i = 0;i < a.size(); ++ i) {
ll l = a[i],r = 2*m;
while(l < r) {
ll mid = l + r >> 1;
int j = upper_bound(a.begin(),a.end(),mid)-a.begin();
if(mid-a[i]+1 <= k + j - i) l = mid + 1;
else r = mid;
}
res = max(res,min(m,l-a[i]));
}
cout << res;
}
signed main() {
//cin >> _t;
while(_t--) {
solve();
}
return 0;
}