#include <bits/stdc++.h>
using namespace std;
int n, k, N;
double p[20];
double sum[20], pMask[1 << 20], rest[1 << 20];
int main(int argc, char**) {
  if (argc > 1) {
    freopen("debug/in.txt", "r", stdin);
    freopen("debug/out.txt", "w", stdout);
  }
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> k;
  N = 1 << n;
  int nPositive = 0;
  for (int i = 0; i < n; ++i) {
    cin >> p[i];
    if (p[i] != 0.0) ++nPositive;
  }
  if (k >= nPositive) {
    for (int i = 0; i < n; ++i) cout << (p[i] != 0.0 ? "1 " : "0 ");
    return 0;
  }
  pMask[0] = 1;
  rest[0] = 1.0;
  fill(pMask + 1, pMask + N, 0.0);
  fill(rest + 1, rest + N, 0.0);
  fill(sum, sum + 20, 0.0);
  for (int a = 0; a < N; ++a) {
    if (__builtin_popcount(a) == k) {
      for (int i = 0; i < n; ++i) {
        if (a & (1 << i)) sum[i] += pMask[a];
      }
    }
    double r = rest[a];
    if (r != 0.0) {
      for (int i = 0; i < n; ++i) {
        int mask = 1 << i;
        if (!(a & mask)) {
          int b = a ^ mask;
          pMask[b] += pMask[a] * p[i] / r;
          rest[b] = r - p[i];
        }
      }
    }
  }
  for (int i = 0; i < n; ++i) cout << sum[i] << " ";
}
