#include <bits/stdc++.h>
using namespace std;
int n, k;
double p[25];
double prob[(1 << 20) + 5];
double pres[25];
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> k;
  for (int i = 0; i < n; i++) cin >> p[i];
  if (n == k) {
    for (int i = 0; i < n; i++) {
      if (p[i] == 0.0)
        cout << 0 << ' ';
      else
        cout << 1 << ' ';
    }
    return 0;
  }
  for (int i = 0; i < n; i++) {
    if (p[i] == 1.0) {
      for (int j = 0; j < n; j++) {
        if (i == j)
          cout << 1 << ' ';
        else
          cout << 0 << ' ';
      }
      return 0;
    }
  }
  prob[0] = 1.0;
  for (int i = 1; i < (1 << n); i++) {
    int pop = __builtin_popcount(i);
    if (pop > k) continue;
    double totprob = 0;
    for (int j = 0; j < n; j++) {
      if ((1 << j) & i) totprob += p[j];
    }
    if (totprob == 1.0) {
      for (int j = 0; j < n; j++) {
        if ((1 << j) & i) {
          if (p[j] != 0.0) pres[j] = 1.0;
        }
      }
      continue;
    }
    for (int j = 0; j < n; j++) {
      if ((1 << j) & i) {
        double ta = totprob - p[j];
        ta = 1.0 / (1.0 - ta);
        prob[i] += ta * p[j] * prob[i ^ (1 << j)];
      }
    }
    bool flag = 1;
    for (int j = 0; j < n; j++) {
      if ((1 << j) & i) continue;
      if (p[j] != 0.0) flag = 0;
    }
    if (pop == k || flag) {
      for (int j = 0; j < n; j++) {
        if ((1 << j) & i) pres[j] += prob[i];
      }
    }
  }
  for (int i = 0; i < n; i++)
    cout << fixed << setprecision(15) << min(1.0, pres[i]) << ' ';
  return 0;
}
