#include <bits/stdc++.h>
using namespace std;
const int INF = 1000000000;
const long long mod = 1e9 + 7;
double dp[1 << 20];
int num[1 << 20];
void dfs(int id, int cnt) {
  if (id >= (1 << 20)) return;
  num[id] = cnt;
  dfs(id << 1, cnt);
  dfs(id << 1 | 1, cnt + 1);
}
void init() {
  num[0] = 0;
  dfs(1, 1);
}
double p[25];
int main() {
  int n, m, i, j, k, st;
  init();
  cin >> n >> k;
  int fl = 0;
  for (i = 0; i < n; i++) {
    scanf("%lf", &p[i]);
  }
  for (i = 0; i < n; i++) {
    if (p[i] == 1.0)
      dp[1 << i] = 1.0;
    else
      dp[1 << i] = p[i] / (1.0 - p[i]);
  }
  for (st = 0; st < (1 << n); st++) {
    if (num[st] > k - 1) continue;
    if (num[st] <= 1) continue;
    double sum = 0.0, tmp = 0.0;
    for (i = 0; i < n; i++) {
      if (st & (1 << i)) {
        sum += p[i];
        tmp += p[i] * dp[st ^ (1 << i)];
      }
    }
    if (sum == 1.0)
      dp[st] = 1.0;
    else
      dp[st] = tmp / (1.0 - sum);
  }
  for (i = 0; i < n; i++) {
    double sum = 0.0;
    for (st = 1; st < (1 << n); st++) {
      if (num[st] > k - 1) continue;
      if (st & (1 << i)) continue;
      sum += dp[st];
    }
    printf("%.10lf\n", (sum + 1.0) * p[i]);
  }
}
