#include <bits/stdc++.h>
using namespace std;
const int maxn = 30;
int bin[maxn], n, k;
long double f[(1ll << 23)], ans[maxn], p[maxn];
int main() {
  bin[0] = 1;
  for (int i = 1; i <= 20; i++) bin[i] = bin[i - 1] << 1;
  scanf("%d%d", &n, &k);
  int m = n;
  for (int i = 1; i <= n; i++) {
    cin >> p[i];
    if (p[i] <= 1e-10) m--;
  }
  k = min(k, m);
  for (int s = 0; s < bin[n]; s++) {
    if (s == 0) f[s] = 1;
    long double tmp = 0;
    int cnt = 0;
    for (int i = 1; i <= n; i++) {
      if (!(bin[i - 1] & s))
        tmp += p[i];
      else
        cnt++;
    }
    if (cnt > k)
      continue;
    else if (cnt < k) {
      for (int i = 1; i <= n; i++)
        if (!(bin[i - 1] & s)) f[s | bin[i - 1]] += f[s] * (p[i] / tmp);
    } else {
      for (int i = 1; i <= n; i++)
        if (s & bin[i - 1]) ans[i] += f[s];
    }
  }
  for (int i = 1; i <= n; i++) printf("%.16lf ", (double)ans[i]);
  return 0;
}
