#include <bits/stdc++.h>
using namespace std;
int32_t main() {
  long long n, k, m;
  cin >> n >> k >> m;
  deque<long long> q;
  long long sum = 0, MAX = 0;
  for (long long i = 0; i < n; ++i) {
    long long x;
    cin >> x;
    q.push_back(x);
    sum += x;
    MAX = max(MAX, x);
  }
  long double res, temp;
  temp = sum;
  sort(q.begin(), q.end());
  long long moves;
  auto itr = q.begin();
  if (m >= n) {
    moves = m;
    while (moves != 0) {
      if (q.size() == 1) break;
      sum -= *itr;
      q.pop_front();
      itr = q.begin();
      moves--;
    }
    res = ((long double)(sum + min(k, moves))) / q.size();
    cout << setprecision(12) << res;
  } else {
    moves = m;
    while (moves != 0) {
      if (*itr == MAX) {
        break;
      }
      sum -= *itr;
      q.pop_front();
      itr = q.begin();
      moves--;
    }
    temp = (long double)(temp + m) / n;
    res = (long double)(sum + moves) / q.size();
    res = max(temp, res);
    cout << setprecision(12) << res;
  }
  return 0;
}
