#include <bits/stdc++.h>
using namespace std;
const int N = 23;
const int M = 1 << 20;
const double ERROR = 1e-11;
double p[N];
double dp[M];
double ans[N];
int bitCount(int a) {
  int res = 0;
  while (a) {
    if (a & 1) {
      res++;
    }
    a >>= 1;
  }
  return res;
}
int main() {
  int n, k, i, j, l, nozeroCount;
  scanf("%d%d", &n, &k);
  for (i = 0, nozeroCount = 0; i < n; i++) {
    scanf("%lf", &p[i]);
    if (p[i] > ERROR) {
      nozeroCount++;
    }
  }
  k = min(k, nozeroCount);
  double sum;
  dp[0] = 1.0;
  for (l = 0; l < 1 << n; l++) {
    for (i = 0, sum = 0.0; i < n; i++) {
      if (((l >> i) & 1) == 0) {
        sum += p[i];
      }
    }
    for (i = 0; i < n; i++) {
      if (((l >> i) & 1) == 0) {
        dp[l | (1 << i)] += dp[l] * p[i] / sum;
      }
    }
  }
  for (l = 0; l < 1 << n; l++) {
    if (bitCount(l) == k) {
      for (i = 0; i < n; i++) {
        if ((l >> i) & 1) {
          ans[i] += dp[l];
        }
      }
    }
  }
  for (i = 0; i < n; i++) {
    printf("%.9lf ", ans[i]);
  }
  printf("\n");
  return 0;
}
