#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
const int maxn = 1005;
const int inf = 1e8;
int main() {
  int n, k, on = 0, off = 0;
  cin >> n >> k;
  vector<long double> p(n), res(n), tot(1 << n), pop(1 << n);
  vector<int> bt(1 << n);
  for (int i = 0; i < n; ++i) {
    cin >> p[i];
    tot[1 << i] = p[i];
    if (p[i] > 0)
      on |= (1 << i);
    else
      off++;
  }
  if (n - off <= k) {
    for (int i = 0; i < n; ++i) {
      cout << (p[i] > 0) << " ";
    }
  } else {
    for (int i = 1; i < (1 << n); ++i) {
      bt[i] = __builtin_popcount(i);
      tot[i] = tot[i - (i & -i)] + tot[i & -i];
      if (tot[i] < 1 && tot[i] > 0) pop[i] = tot[i] / (1.0 - tot[i]);
      if (i & ~on) continue;
      if (bt[i] == k) {
        long double dp = 0;
        for (int j = i; j > 0; j = i & (j - 1)) {
          dp += ((k + bt[j]) & 1) ? -pop[j] : pop[j];
        }
        dp *= (1.0 - tot[i]);
        for (int j = 0; j < n; ++j) {
          if ((i >> j) & 1) {
            res[j] += dp;
          }
        }
      }
    }
    for (auto x : res) {
      cout << fixed << setprecision(10) << x << " ";
    }
  }
  return 0;
}
