#include <bits/stdc++.h>
using namespace std;
int32_t mod = 1e9 + 7;
long long n, m, x, k, l, r;
bool f1, f2, f3;
string s, s1, s2;
vector<long long> v, v1, v2;
set<long long> se, se1, se2;
map<long long, long long> mp1, mp2;
void initiateCase() {
  n = m = x = k = l = r = 0;
  f1 = f2 = f3 = false;
  s = s1 = s2 = string();
  v = v1 = v2 = vector<long long>();
  se = se1 = se2 = set<long long>();
  mp1 = mp2 = map<long long, long long>();
}
void solveCase() {
  initiateCase();
  cin >> n >> k >> m;
  v.resize(n);
  long double sum = 0;
  for (long long i = 0; i < n; i++) {
    cin >> v[i];
    sum += v[i];
  }
  sort(v.begin(), v.end());
  if (m >= n) {
    cout << v[n - 1] + min(m - n + 1, k);
    return;
  }
  long double ans = (sum + m) / n, leftSum = sum + m;
  for (long long i = 0; i < m; i++) {
    leftSum -= v[i] + 1;
    ans = max(ans, leftSum / (n - i - 1));
  }
  cout << setprecision(10) << ans;
}
int32_t main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  solveCase();
}
