#include <bits/stdc++.h>
using namespace std;
const int N = 21, M = (1 << 20) + 5;
inline int read() {
  char c = getchar();
  int x = 0, f = 1;
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    x = x * 10 + c - '0';
    c = getchar();
  }
  return x * f;
}
int n, k, c[N][N];
double p[N], sum[M], coe[N], g[M];
inline int one(int x) {
  int c = 0;
  while (x) x &= x - 1, c++;
  return c;
}
int main() {
  n = read();
  k = read();
  for (int i = 0; i < n; i++) scanf("%lf", &p[i]), sum[1 << i] = p[i];
  c[0][0] = 1;
  for (int i = 1; i <= n; i++) {
    c[i][0] = 1;
    for (int j = 1; j <= i; j++) c[i][j] = c[i - 1][j] + c[i - 1][j - 1];
  }
  int all = 1 << n;
  for (int i = 0; i < all; i++)
    if (!sum[i]) sum[i] = sum[i & -i] + sum[i ^ (i & -i)];
  for (int i = k - 1; i >= 0; i--) {
    coe[i] = 1;
    for (int j = i + 1; j <= k - 1; j++) coe[i] -= coe[j] * c[n - 1 - i][j - i];
  }
  for (int i = 0; i < n; i++) {
    if (p[i] == 0 || p[i] == 1 || k == 1) {
      printf("%.9lf ", p[i]);
      continue;
    }
    double ans = 0;
    for (int s = 0; s < all; s++)
      if (!((1 << i) & s) && one(s) <= k - 1) ans += coe[one(s)] / (1 - sum[s]);
    printf("%.9lf ", p[i] * ans);
  }
}
