#include <bits/stdc++.h>
int cmp(const void *a, const void *b) {
  return *(long long int *)a - *(long long int *)b;
}
int main() {
  long long int n, k, m, i, *p;
  scanf("%lld %lld %lld", &n, &k, &m);
  p = (long long int *)malloc(n * sizeof(long long int));
  long long int sum = 0, t;
  double max, aver;
  for (i = 0; i < n; i++) {
    scanf("%lld", &p[i]);
    sum = sum + p[i];
  }
  qsort(p, n, sizeof(long long int), cmp);
  long long int count, time;
  t = sum, i = 0;
  while (i < n && i <= m) {
    long long int total = t;
    time = m - i;
    count = (n - i) * k;
    if (count < time) time = count;
    aver = (total + time) * 1.0 / (n - i);
    if (i == 0)
      max = aver;
    else {
      if (aver > max && total > 0) max = aver;
    }
    t = t - p[i];
    i++;
  }
  printf("%.10lf\n", max);
  return 0;
}
