#include <bits/stdc++.h>
using namespace std;
const int maxn = 20;
int n, k;
double p[maxn];
double dp[1 << maxn];
double ans[maxn];
int main() {
  scanf("%d%d", &n, &k);
  int pos = 0;
  for (int i = 0; i < n; ++i) {
    scanf("%lf", p + i);
    if (p[i] > 0.0) ++pos;
  }
  if (pos <= k) {
    for (int i = 0; i < n; ++i) ans[i] = p[i] > 0.0 ? 1.0 : 0.0;
    goto output;
  }
  dp[0] = 1.0;
  for (int mask = 1, i, cnt; mask < (1 << n);) {
    double tot = 0.0;
    for (i = cnt = 0; i < n; ++i)
      if (mask & (1 << i))
        ++cnt;
      else
        tot += p[i];
    for (i = 0; i < n; ++i)
      if (mask & (1 << i))
        dp[mask] += p[i] / (tot + p[i]) * dp[mask ^ (1 << i)];
    if (cnt == k) {
      for (i = 0; i < n; ++i)
        if (mask & (1 << i)) ans[i] += dp[mask];
      mask += mask & (~mask + 1);
    } else {
      ++mask;
    }
  }
output:
  for (int i = 0; i < n; ++i)
    printf("%.16f%c", ans[i], i != n - 1 ? ' ' : '\n');
}
