#include <bits/stdc++.h>
using namespace std;
int n, k, m;
const int maxn = 1e5 + 10;
long long a[maxn];
int main() {
  scanf("%d%d%d", &n, &k, &m);
  for (int i = 1; i <= n; i++) scanf("%lld", &a[i]);
  sort(a + 1, a + n + 1);
  int p = lower_bound(a + 1, a + n + 1, a[n]) - a;
  p--;
  for (int i = 2; i <= n; i++) a[i] += a[i - 1];
  double maxx = 0.0, tp;
  if (m <= p) {
    for (int i = 0; i <= m; i++) {
      tp = (double)(a[n] - a[i]);
      tp += (double)(m - i);
      tp /= (double)(n - i);
      if (maxx < tp) maxx = tp;
    }
  } else {
    if (m - p <= n - p) {
      tp = (double)(a[n] - a[p]);
      tp += (double)(m - p);
      tp /= (double)(n - p);
      if (maxx < tp) maxx = tp;
    } else {
      tp = (double)(a[n] - a[n - 1]);
      tp += (double)min(m - (n - 1), k);
      if (maxx < tp) maxx = tp;
    }
  }
  printf("%.20lf\n", maxx);
  return 0;
}
