#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-18;
const int maxn = 30;
const int maxmask = (1 << 20) + 10;
double p[maxn];
int n, m, nn;
int id[maxn];
double ans[maxn];
double f[maxmask];
void outit() {
  for (int i = 1; i <= nn; i++) printf("%.18f ", ans[i]);
  printf("\n");
}
int main() {
  scanf("%d%d", &nn, &m);
  for (int i = 1; i <= nn; i++) {
    double x;
    scanf("%lf", &x);
    if (fabs(x) < eps) {
      ans[i] = 0;
      continue;
    }
    n++;
    id[n] = i;
    p[n] = x;
  }
  if (n <= m) {
    for (int i = 1; i <= n; i++) ans[id[i]] = 1;
    outit();
    return 0;
  }
  f[0] = 1;
  for (int i = 0; i < (1 << n); i++) {
    if (fabs(f[i]) < eps) continue;
    if (__builtin_popcount(i) == m) {
      for (int j = 1; j <= n; j++)
        if (i & (1 << (j - 1))) ans[id[j]] += f[i];
      continue;
    }
    double all = 0;
    for (int j = 1; j <= n; j++)
      if (!(i & (1 << (j - 1)))) all += p[j];
    for (int j = 1; j <= n; j++)
      if (!(i & (1 << (j - 1)))) f[i | (1 << (j - 1))] += f[i] * p[j] / all;
  }
  outit();
  return 0;
}
