#include <bits/stdc++.h>
using namespace std;
const long long MAX = 1e7 + 10;
int dx[8] = {1, 0, 0, -1, 1, -1, 1, -1};
int dy[8] = {0, 1, -1, 0, 1, -1, -1, 1};
vector<long double> v;
long double n, kk;
bool OK(long double k) {
  long double loss = 0, give = 0;
  for (int i = 0; i < v.size(); i++) {
    if (k > v[i])
      give += (k - v[i]);
    else if (v[i] >= k)
      loss += (v[i] - k);
  }
  long double ls = 0.0;
  ls = loss - ((loss * kk) / (long double)100);
  if (ls >= give)
    return 1;
  else
    return 0;
}
int main() {
  cin.tie(0);
  cout.tie(0);
  std::ios::sync_with_stdio(false);
  long double sm = 0.0, a;
  cin >> n >> kk;
  set<long double> s;
  for (int i = 0; i < n; i++) {
    cin >> a;
    v.push_back(a);
    s.insert(a);
    sm += v[i];
  }
  if (s.size() == 1) {
    cout << setprecision(8) << fixed << v[0];
    return 0;
  }
  long double mn = *min_element(v.begin(), v.end());
  long double l = mn, r = 1001, ans = 0.0;
  while (l + 1e-7 <= r) {
    long double mid = (l + r) / 2.0;
    if (OK(mid))
      l = mid, ans = mid;
    else
      r = mid;
  }
  cout << setprecision(8) << fixed << ans;
  return 0;
}
