#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const double eps = 1e-6;
const int msz = 1e5 + 1;
double ans[20];
double p[20];
double dp[1 << 20];
int got(int x) {
  int cnt = 0;
  while (x) {
    if (x & 1) cnt++;
    x >>= 1;
  }
  return cnt;
}
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  memset(dp, 0, sizeof(dp));
  dp[0] = 1;
  int tot = (1 << n);
  int cnt = 0;
  for (int i = 0; i < n; ++i) {
    scanf("%lf", &p[i]);
    if (p[i] < eps) cnt++;
  }
  k = min(k, n - cnt);
  memset(ans, 0, sizeof(ans));
  for (int i = 0; i < tot; ++i) {
    double tmp = 1;
    for (int j = 0; j < n; ++j) {
      if (i & (1 << j)) {
        tmp -= p[j];
        if (got(i) == k) {
          ans[j] += dp[i];
        }
      }
    }
    for (int j = 0; j < n; ++j) {
      if (i & (1 << j)) continue;
      dp[i | (1 << j)] += dp[i] * p[j] / tmp;
    }
  }
  for (int i = 0; i < n; ++i) {
    if (i) putchar(' ');
    printf("%.7f", ans[i]);
  }
  return 0;
}
