#include <bits/stdc++.h>
using namespace std;
int N, K;
double P[25];
double rs[25];
double dp[(1 << 20) + 10];
int bc(int n) {
  int nn = n;
  int cc = 0;
  while (n) {
    cc += n & 1;
    n >>= 1;
  }
  return cc;
}
int main() {
  scanf("%d%d", &N, &K);
  for (int i = 0; i < N; i++) {
    scanf("%lf", P + i);
  }
  dp[0] = 1.0;
  for (int st = 0; st < (1 << N); st++) {
    double sm = 0.0;
    bool bad = false;
    for (int j = 0; j < N; j++) {
      if (st & (1 << j)) {
        sm += P[j];
        if (P[j] == 0.0) bad = true;
      }
    }
    if (bad) continue;
    for (int j = 0; j < N; j++) {
      if (P[j] == 0.0 || (st & (1 << j))) continue;
      dp[st | (1 << j)] += P[j] / (1.0 - sm) * dp[st];
    }
  }
  int k = min(K, N - (int)count(P, P + N, 0.0));
  for (int st = 0; st < (1 << N); st++) {
    if (bc(st) != k) continue;
    for (int j = 0; j < N; j++) {
      if (st & (1 << j)) rs[j] += dp[st];
    }
  }
  for (int i = 0; i < N; i++) {
    printf("%.9lf ", rs[i]);
  }
  printf("\n");
}
