#include <bits/stdc++.h>
const double eps = 1e-8;
double p[20], ans[20];
double d[1 << 20];
int f[20] = {1};
char vis[20];
int main() {
  int n, k, i, s, smax, num, cnt;
  double p_sum;
  scanf("%d%d", &n, &k);
  cnt = 0;
  for (i = 1; i < n; i++) f[i] = f[i - 1] << 1;
  for (i = 0; i < n; i++) {
    scanf("%lf", &p[i]);
    if (p[i] > eps)
      cnt++;
    else
      vis[i] = 1;
  }
  smax = 1 << n;
  d[0] = 1.0;
  k = k < cnt ? k : cnt;
  for (s = 0; s < smax; s++) {
    p_sum = 0;
    num = 0;
    for (i = 0; i < n; i++) {
      if (!vis[i] && (s & f[i]) > 0) {
        p_sum += p[i];
        num++;
      }
    }
    if (num > k)
      continue;
    else if (num == k)
      for (i = 0; i < n; i++)
        if (s & f[i]) ans[i] += d[s];
    for (i = 0; i < n; i++)
      if (!vis[i] && (s & f[i]) == 0) d[s | f[i]] += d[s] * p[i] / (1 - p_sum);
  }
  for (i = 0; i < n; i++) {
    printf("%.10lf", ans[i]);
    printf("%c", i < n - 1 ? ' ' : '\n');
  }
  return 0;
}
