#include <bits/stdc++.h>
using namespace std;
double p[31];
double ans[31];
double dp[2123455];
bool vis[2123455] = {false};
int n, k;
double get(int mask) {
  if (mask == 0) {
    return 1;
  }
  if (vis[mask] == true) {
    return dp[mask];
  }
  vis[mask] = true;
  double tot = 0;
  for (int i = 0; i < n; ++i) {
    if (mask & (1 << i)) {
      tot += p[i];
    }
  }
  double ret = 0;
  for (int i = 0; i < n; ++i) {
    if (mask & (1 << i)) {
      if (p[i] > 0) {
        ret += p[i] * get(mask - (1 << i)) / (1 - tot + p[i]);
      }
    }
  }
  return dp[mask] = ret;
}
int main() {
  int kk = 0;
  cin >> n >> k;
  for (int i = 0; i < n; ++i) {
    cin >> p[i];
    if (p[i] > 0) {
      kk++;
    }
    ans[i] = 0;
  }
  if (k > kk) {
    k = kk;
  }
  for (int mask = 0; mask < (1 << n); ++mask) {
    int c = 0;
    for (int i = 0; i < n; ++i) {
      if (mask & (1 << i)) {
        c++;
      }
    }
    if (c != k) {
      continue;
    }
    double cur = get(mask);
    for (int i = 0; i < n; ++i) {
      if (mask & (1 << i)) {
        ans[i] += cur;
      }
    }
  }
  for (int i = 0; i < n; ++i) {
    printf("%0.9f", ans[i]);
    printf(i < n - 1 ? " " : "\n");
  }
}
