#include <bits/stdc++.h>
using namespace std;
const int maxn = 20;
const double eps = 1e-6;
double p[maxn], ans[maxn], dp[1 << maxn], S[1 << maxn];
int Size[1 << maxn];
bool eq(const double &a, const double &b) { return abs(a - b) <= eps; }
int main() {
  int n, k, zerCnt = 0;
  bool is0;
  scanf("%d %d", &n, &k);
  for (int i = (0); i < (n); ++i) {
    scanf("%lf", &p[i]);
    dp[i] = ans[i] = 0;
    Size[i] = 0;
    if (eq(p[i], 0)) ++zerCnt;
  }
  k = min(k, n - zerCnt);
  dp[0] = 1;
  for (int i = (1); i < (1 << n); ++i) {
    for (int j = (0); j < (n); ++j)
      if (i & (1 << j)) {
        Size[i] = Size[i - (1 << j)] + 1;
        S[i] = S[i - (1 << j)] + p[j];
      }
  }
  for (int i = (1); i < (1 << n); ++i) {
    if (S[i] > 0) {
      for (int j = (0); j < (n); ++j)
        if ((i & (1 << j)) && (S[(1 << n) - 1 - i + (1 << j)] > 0))
          dp[i] += dp[i - (1 << j)] * p[j] / S[(1 << n) - 1 - i + (1 << j)];
      if (Size[i] == k)
        for (int j = (0); j < (n); ++j)
          if (i & (1 << j)) ans[j] += dp[i];
    } else
      dp[i] = 0;
  }
  for (int i = (0); i < (n); ++i) printf("%.8f ", ans[i]);
  return 0;
}
