#include <bits/stdc++.h>
int n, k;
int xs[10000];
double max, min, res;
double canReach(double v) {
  double total = 0;
  for (int i = 0; i < n; i++) {
    if (xs[i] > v) total += (xs[i] - v);
  }
  total -= total * k / 100;
  for (int i = 0; i < n; i++) {
    if (xs[i] < v) total -= (v - xs[i]);
  }
  return total;
}
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 0; i < n; i++) scanf("%d", &xs[i]);
  max = 1000.000000;
  while (true) {
    double mid = (max + min) / 2;
    double total = canReach(mid);
    if (((total < 0) ? -total : total) < 0.0000001) {
      res = mid;
      break;
    }
    if (total < 0)
      max = mid;
    else
      min = mid;
  }
  printf("%.9lf", res);
  return 0;
}
