#include <bits/stdc++.h>
using namespace std;
double f[1 << 20];
double p[32];
int n, k, z;
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 0, to = n; i < to; ++i) {
    scanf("%lf", p + i);
    if (!p[i]) z++;
  }
  if (n - z < k) {
    for (int i = 0, to = n; i < to; ++i) {
      if (i) putchar(' ');
      printf("%.10lf", p[i] ? 1. : 0.);
    }
    puts("");
    return 0;
  }
  f[0] = 1;
  for (int m = 1, to = 1 << n; m < to; ++m) {
    double s = 0.;
    for (int i = 0, to = n; i < to; ++i)
      if (!(m & (1 << i))) s += p[i];
    f[m] = 0.;
    for (int i = 0, to = n; i < to; ++i)
      if (m & (1 << i)) f[m] += f[m ^ (1 << i)] * p[i] / (s + p[i]);
  }
  for (int i = 0, to = n; i < to; ++i) {
    if (i) putchar(' ');
    double r = 0.;
    for (int m = 0, to = 1 << n; m < to; ++m)
      if (__builtin_popcount(m) == k && (m & (1 << i))) r += f[m];
    printf("%.10lf", r);
  }
  puts("");
  return 0;
}
