#include <bits/stdc++.h>
using namespace std;
double f[1 << 20];
double dp[1 << 20];
double a[20];
double res[20];
double sdiv(double a, double b) {
  if (b < 1e-9) return 0;
  return a / b;
}
void solve() {
  int n, k;
  cin >> n >> k;
  for (int i = 0; i < (n); ++i) scanf("%lf", a + i);
  int n0 = 0;
  for (int i = 0; i < (n); ++i) {
    if (a[i] > 1e-3) ++n0;
  }
  if (n0 <= k) {
    for (int i = 0; i < (n); ++i) {
      if (a[i] > 1e-3)
        cout << 1 << " ";
      else
        cout << 0 << " " << endl;
    }
    cout << endl;
    return;
  }
  memset(res, 0, sizeof(res));
  memset(dp, 0, sizeof(dp));
  f[0] = 0;
  for (int i = 0; i < (n); ++i) f[1 << i] = a[i];
  int full = (1 << n) - 1;
  for (int i = 1; i <= full; ++i) {
    int lbit = i & (-i);
    f[i] = f[i ^ lbit] + f[lbit];
  }
  dp[0] = 1;
  for (int i = 0; i <= full; ++i) {
    int pc = 0;
    for (int j = 0; j < (n); ++j) {
      if (~i & (1 << j))
        dp[i | (1 << j)] += dp[i] * sdiv(a[j], f[full ^ i]);
      else
        ++pc;
    }
    if (pc == k) {
      for (int j = 0; j < (n); ++j) {
        if (i & (1 << j)) {
          res[j] += dp[i];
        }
      }
    }
  }
  for (int i = 0; i < (n); ++i) {
    printf("%.6lf ", res[i]);
  }
  cout << endl;
}
int main() {
  solve();
  return 0;
}
