#include <bits/stdc++.h>
using namespace std;
pair<int, int> get_required_range(int pd[], int sd[], int k, int second,
                                  int e) {
  int mid;
  while (second < e) {
    mid = second + (e - second) / 2;
    if (pd[mid] * 1.0 == sd[mid] * (1 - (k * 1.0) / 100))
      return make_pair(mid, mid);
    else if (pd[mid] * 1.0 < sd[mid] * (1 - (k * 1.0) / 100))
      second = mid + 1;
    else
      e = mid - 1;
  }
  if (pd[second] * 1.0 < sd[second] * (1 - (k * 1.0) / 100))
    return make_pair(second, second + 1);
  else
    return make_pair(second - 1, second);
}
double get_ans(int a[], int n, int k) {
  sort(a, a + n);
  int pref_dif[n], suff_dif[n];
  pref_dif[0] = 0;
  suff_dif[n - 1] = 0;
  for (int i = 1; i < n; i++)
    pref_dif[i] = (i) * (a[i] - a[i - 1]) + pref_dif[i - 1];
  for (int i = n - 2; i > -1; i--)
    suff_dif[i] = (n - i - 1) * (a[i + 1] - a[i]) + suff_dif[i + 1];
  pair<int, int> required_range =
      get_required_range(pref_dif, suff_dif, k, 0, n - 1);
  int st = required_range.first, e = required_range.second;
  double ans = 0;
  ans = ((1 - (k * 1.0) / 100) * suff_dif[st] - pref_dif[st]) * 1.0 /
        ((st + 1) + (1 - (k * 1.0) / 100) * (n - st - 1));
  return ans + a[st];
}
int main() {
  int n, k;
  cin >> n >> k;
  int a[n];
  for (int i = 0; i < n; i++) cin >> a[i];
  if (n == 0) {
    cout << -1 << endl;
    return 0;
  } else if (n == 1) {
    cout << a[0] << endl;
    return 0;
  }
  cout << setprecision(20) << get_ans(a, n, k) << endl;
  return 0;
}
