#include <bits/stdc++.h>
using namespace std;
const int _ = 1e2;
const int maxn = 20 + 10;
const int fbin = (1 << 20) + _;
int n, K, li;
double ttp[maxn], p[fbin];
int o[fbin];
void yu() {
  for (int zt = 0; zt <= li; zt++) {
    for (int i = 1; i <= n; i++)
      if (zt & (1 << i - 1)) p[zt] += ttp[i], o[zt]++;
  }
}
double f[fbin], as[maxn];
int main() {
  scanf("%d%d", &n, &K);
  li = (1 << n) - 1;
  int cc = 0;
  for (int i = 1; i <= n; i++) {
    scanf("%lf", &ttp[i]);
    if (ttp[i] <= 1e-8) cc++;
  }
  K = min(K, n - cc);
  yu();
  f[0] = 1;
  for (int zt = 1; zt <= li; zt++)
    if (o[zt] <= K) {
      for (int i = 1; i <= n; i++)
        if (zt & (1 << i - 1)) f[zt] += f[zt ^ (1 << i - 1)] * ttp[i];
      if (o[zt] == K) {
        for (int i = 1; i <= n; i++)
          if (zt & (1 << i - 1)) as[i] += f[zt];
      }
      f[zt] /= (1 - p[zt]);
    }
  for (int i = 1; i < n; i++) printf("%.8lf ", as[i]);
  printf("%.8lf\n", as[n]);
  return 0;
}
