#include <bits/stdc++.h>
const double eps = 1e-6;
using namespace std;
int k, n;
double p[20 + 5], dp[(1 << 20)], ans[20 + 5];
int deal(int x) {
  int ans = 0;
  for (int i = 0; i < n; i++)
    if (x & (1 << i)) ans++;
  return ans;
}
int main() {
  scanf("%d%d", &n, &k);
  int cnt = 0;
  dp[0] = 1;
  for (int i = 0; i < n; i++) {
    scanf("%lf", &p[i]);
    if (p[i] < eps) cnt++;
  }
  k = min(k, n - cnt);
  for (int i = 0; i < (1 << n); i++) {
    double temp = 1;
    for (int j = 0; j < n; j++)
      if (i & (1 << j)) {
        temp -= p[j];
        if (deal(i) == k) ans[j] += dp[i];
      }
    for (int j = 0; j < n; j++)
      if ((i & (1 << j)) == 0) dp[i | (1 << j)] += dp[i] * p[j] / temp;
  }
  for (int i = 0; i < n; i++)
    printf("%.7lf%c", ans[i], i == n - 1 ? '\n' : ' ');
  return 0;
}
