#include <bits/stdc++.h>
using namespace std;
double prb[(1 << 21)], p[25], ans[25];
int vis[(1 << 21)];
bool eq(double a, double b) { return (abs(a - b) < 1e-12); }
int main() {
  int i, n, k, tmp;
  scanf("%d", &n);
  scanf("%d", &k);
  tmp = n;
  for (i = 0; i < n; i++) {
    scanf("%lf", &p[i]);
    if (eq(p[i], 0)) tmp--;
  }
  k = min(k, tmp);
  prb[0] = 1;
  queue<int> all;
  all.push(0);
  while (!all.empty()) {
    int now = all.front();
    all.pop();
    if (__builtin_popcount(now) == k)
      for (i = 0; i < n; i++)
        if (now & (1 << i)) ans[i] += prb[now];
    double gun = 0;
    for (i = 0; i < n; i++)
      if (!(now & (1 << i))) gun += p[i];
    gun = 1 / gun;
    if (__builtin_popcount(now) < k)
      for (i = 0; i < n; i++) {
        if ((now & (1 << i)) || eq(p[i], 0)) continue;
        tmp = now ^ (1 << i);
        prb[tmp] += (p[i] * gun * prb[now]);
        if (!vis[tmp]) {
          vis[tmp] = 1;
          all.push(tmp);
        }
      }
  }
  for (i = 0; i < n; i++) printf("%.15f ", ans[i]);
  printf("\n");
  return 0;
}
