#include <bits/stdc++.h>
using namespace std;
double sum[(1 << 20) + 9], dp[(1 << 20) + 9];
double p[21];
double ans[21];
bool on[21];
int main() {
  int n, k;
  scanf("%d", &n);
  scanf("%d", &k);
  int m = n;
  for (int i = 1; i <= n; i++) {
    cin >> p[i];
    if (abs(p[i]) < (1e-10)) {
      on[i] = 1;
      m--;
      ans[i] = 0;
    }
  }
  if (k > m) k = m;
  dp[0] = 1.0;
  for (int mask = 0; mask < (1 << n); mask++) {
    double pre = dp[mask];
    if (abs(dp[mask]) < (1e-10) || __builtin_popcount(mask) > k) continue;
    double rem = 0;
    for (int i = 1; i <= n; i++) {
      if ((mask & (1 << (i - 1))) == 0) rem += p[i];
    }
    if (abs(rem) < (1e-10)) continue;
    for (int i = 1; i <= n; i++) {
      if ((mask & (1 << (i - 1))) == 0 && on[i] == 0) {
        int nmask = mask | (1 << (i - 1));
        dp[nmask] += pre * (p[i] / rem);
      }
    }
  }
  for (int mask = 0; mask < (1 << n); mask++) {
    if (__builtin_popcount(mask) == k) {
      for (int i = 1; i <= n; i++) {
        if (mask & (1 << (i - 1))) ans[i] += dp[mask];
      }
    }
  }
  for (int i = 1; i <= n; i++) printf("%.12lf ", ans[i]);
  return 0;
}
