#include <bits/stdc++.h>
using namespace std;
inline long long mod(long long n, long long m) {
  long long ret = n % m;
  if (ret < 0) ret += m;
  return ret;
}
long long gcd(long long a, long long b) { return (b == 0 ? a : gcd(b, a % b)); }
long long exp(long long a, long long b, long long m) {
  if (b == 0) return 1;
  if (b == 1) return mod(a, m);
  long long k = mod(exp(a, b / 2, m), m);
  if (b & 1) {
    return mod(a * mod(k * k, m), m);
  } else
    return mod(k * k, m);
}
long double media(long double sum, long double n) { return sum / n; }
int32_t main() {
  long long n, k, m;
  cin >> n >> k >> m;
  long long v[n];
  long double sum = 0.0;
  for (long long i = 0; i < n; i++) {
    cin >> v[i];
    sum += v[i];
  }
  sort(v, v + n);
  long double melhor = media(sum + min(m, n * k), (long double)n);
  for (long long i = 0; i < min(m, n - 1); i++) {
    sum -= v[i];
    melhor = max(melhor, media(sum + min(m - i - 1, (n - i - 1) * k),
                               (long double)(n - i - 1)));
  }
  cout << fixed << setprecision(20) << melhor << "\n";
}
