#include <bits/stdc++.h>
using namespace std;
long long n, k;
double dp[1LL << 21];
double p[40];
double ans[40];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n >> k;
  cout << setprecision(12) << fixed;
  for (long long i = 0; i < n; i++) cin >> p[i];
  long long lim = (1LL << n);
  if (k == 1) {
    for (long long i = 0; i < n; i++) cout << p[i] << " ";
    return 0;
  }
  for (long long i = 0; i < lim; i++) dp[i] = 0.0;
  for (long long mask = 1; mask < lim; mask++) {
    long long bts = __builtin_popcountll(mask);
    if (bts == 1) {
      for (long long j = 0; j < n; j++) {
        if (mask & (1LL << j)) {
          dp[mask] = p[j];
          break;
        }
      }
      double notin = 0;
      for (long long j = 0; j < n; j++) {
        if ((mask & (1LL << j)) == 0) {
          notin += p[j];
        }
      }
      if (notin < 0.0 + 0.000000001 && notin > 0.0 - 0.000000001) {
        for (long long j = 0; j < n; j++) {
          if ((mask & (1LL << j))) {
            ans[j] += dp[mask];
          }
        }
        continue;
      }
      for (long long j = 0; j < n; j++) {
        if ((mask & (1LL << j)) == 0) {
          long long nw = (mask | (1LL << j));
          dp[nw] += dp[mask] * p[j] / notin;
        }
      }
    } else if (bts == k) {
      continue;
    } else if (bts < k) {
      double notin = 0;
      for (long long j = 0; j < n; j++) {
        if ((mask & (1LL << j)) == 0) {
          notin += p[j];
        }
      }
      if (notin < 0.0 + 0.000000001 && notin > 0.0 - 0.000000001) {
        for (long long j = 0; j < n; j++) {
          if ((mask & (1LL << j))) {
            ans[j] += dp[mask];
          }
        }
        continue;
      }
      for (long long j = 0; j < n; j++) {
        if ((mask & (1LL << j)) == 0) {
          long long nw = (mask | (1LL << j));
          dp[nw] += dp[mask] * p[j] / notin;
        }
      }
    }
  }
  for (long long i = 0; i < lim; i++) {
    long long bts = __builtin_popcountll(i);
    if (bts != k) continue;
    for (long long j = 0; j < n; j++) {
      if (i & (1LL << j)) {
        ans[j] += dp[i];
      }
    }
  }
  for (long long i = 0; i < n; i++) cout << ans[i] << " ";
  return 0;
}
