#include <bits/stdc++.h>
long double f[1 << 20];
double p[1 << 20];
int g[1 << 20];
double ans[20];
int main() {
  f[0] = 1;
  int n, k;
  scanf("%d%d", &n, &k);
  int cnt = n;
  for (int i = 0; i < n; ++i) {
    scanf("%lf", &p[1 << i]);
    if (p[1 << i] == 0) cnt--;
  }
  if (cnt < k) k = cnt;
  int lim = 1 << n;
  for (int i = 1; i < lim; ++i) {
    p[i] = p[i & (-i)] + p[i ^ (i & (-i))];
    g[i] = (i & 1) + g[i >> 1];
  }
  for (int i = 0; i < lim; ++i) {
    for (int j = 0; j < n; ++j) {
      if (i & (1 << j)) continue;
      if (p[i] != 1) f[i ^ (1 << j)] += f[i] * p[1 << j] / (1 - p[i]);
    }
    if (g[i] == k) {
      for (int j = 0; j < n; ++j) {
        if (i & (1 << j)) ans[j] += f[i];
      }
    }
  }
  for (int i = 0; i < n; ++i)
    printf("%.7f%c", ans[i], (i == n - 1) ? '\n' : ' ');
  return 0;
}
