#include <bits/stdc++.h>
using namespace std;
const int maxn = 21;
int n, k;
long double p[maxn], f[1 << maxn], ans[maxn];
void dp(int x) {
  int cnt = 0;
  long double tot = 0;
  for (int i = 1; i <= n; i++) {
    if ((x & (1 << (i - 1))) == 0)
      tot += p[i];
    else
      cnt++;
  }
  if (cnt > k)
    return;
  else if (cnt == k) {
    for (int i = 1; i <= n; i++) {
      if (x & (1 << (i - 1))) ans[i] += f[x];
    }
  } else
    for (int i = 1; i <= n; i++)
      if ((x & (1 << (i - 1))) == 0)
        f[x | (1 << (i - 1))] += f[x] * (p[i] / tot);
}
int main() {
  f[0] = 1;
  int tmp = 0;
  cin >> n >> k;
  for (int i = 1; i <= n; i++) {
    cin >> p[i];
    if (p[i] > 1e-8) tmp++;
  }
  if (tmp <= k) {
    for (int i = 1; i <= n; i++) {
      if (p[i] > 1e-8)
        printf("1 ");
      else
        printf("0 ");
    }
    return 0;
  }
  for (int i = 0; i < (1 << n); i++) dp(i);
  for (int i = 1; i <= n; i++) cout << ans[i] << " ";
  return 0;
}
