#include <bits/stdc++.h>
using namespace std;
const int maxn = 2000 * 1000 + 10;
long double dp[maxn], a[25], p[maxn], ans[25];
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  int n, k, cnt = 0, j = 0;
  cout << setprecision(9);
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    if (a[i] == 0) cnt++;
  }
  if ((n - cnt) <= k) {
    for (int i = 0; i < n; i++) cout << (a[i] ? 1 : 0) << ' ';
    return cout << endl, 0;
  }
  for (int i = 1; i < (1 << n); i++) {
    int b = __builtin_popcount(i);
    if (b == 1) {
      dp[i] = p[i] = a[__builtin_ctz(i)];
      continue;
    }
    if (b <= k) {
      for (int j = 0; j < n; j++) {
        if ((i >> j) & 1) {
          p[i] += a[j];
          int x = i - (1 << j);
          dp[i] += dp[x] * a[j] / (1.0 - p[x]);
        }
      }
    }
  }
  for (int i = 0; i < (1 << n); i++) {
    int b = __builtin_popcount(i);
    if (b == k) {
      for (int j = 0; j < n; j++)
        if ((i >> j) & 1) ans[j] += dp[i];
    }
  }
  for (int i = 0; i < n; i++) cout << fixed << ans[i] << ' ';
  return 0;
}
