#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-8;
void Main() {
  int N, K;
  cin >> N >> K;
  vector<double> P(N), ans(N);
  for (int i = int(0); i < int(N); ++i) cin >> P[i];
  int NN = N;
  for (int i = int(0); i < int(N); ++i) {
    if (P[i] < EPS) NN--;
  }
  K = min(NN, K);
  vector<double> dp((1LL << (N)));
  dp[0] = 1;
  for (int mask = int(0); mask < int((1LL << (N))); ++mask) {
    double sum = 1.0;
    for (int i = int(0); i < int(N); ++i)
      if (mask & (1LL << (i))) {
        sum -= P[i];
      }
    if (sum > EPS) {
      for (int i = int(0); i < int(N); ++i)
        if ((mask & (1LL << (i))) == 0) {
          dp[mask | (1LL << (i))] += dp[mask] * P[i] / sum;
        }
    }
  }
  for (int mask = int(0); mask < int((1LL << (N))); ++mask) {
    if (__builtin_popcount(mask) == K) {
      for (int i = int(0); i < int(N); ++i)
        if (mask & (1LL << (i))) {
          ans[i] += dp[mask];
        }
    }
  }
  for (int i = int(0); i < int(N); ++i) {
    (void)printf(i + 1 < N ? "%.10f " : "%.10f\n", ans[i]);
  }
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  Main();
  return 0;
}
