#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, k, m;
  cin >> n >> k >> m;
  int K = k;
  vector<int> a(n);
  bool done = false;
  if (m >= n) {
    done = true;
  }
  double sum = 0;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    sum += (double)(a[i]);
  }
  int M = m;
  sort(a.begin(), a.end(), greater<int>());
  vector<int> A = a;
  while (m && a.size() > 1) {
    m--;
    a.pop_back();
  }
  while (m && k) {
    m--, k--;
    a.back()++;
  }
  double total = 0;
  for (int i = 0; i < (int)a.size(); i++) {
    total += (double)(a[i]);
  }
  double answer = total / (double)(a.size()) * 1.00000000;
  cout << setprecision(10) << fixed;
  if (done) {
    cout << answer << "\n";
    return 0;
  }
  a = A;
  double Answer = 0;
  for (int remove = 0; remove <= M; remove++) {
    int rem = M - remove;
    double tmp_sum =
        sum + min((double)(n - remove) * (double)(K), (double)(rem));
    Answer = max(Answer, tmp_sum / (double)(n - remove) * 1.000000);
    sum -= a.back();
    a.pop_back();
  }
  cout << max(answer, Answer) << "\n";
  return 0;
}
