#include <bits/stdc++.h>
using namespace std;
int n, k;
double arr[20];
double dp[1 << 20];
double ans[20];
double f(int mask) {
  if (!mask)
    return 1;
  else if (dp[mask] != -1)
    return dp[mask];
  else {
    double sum0 = 0;
    for (int i = 0; i < n; i++) {
      int bit = (1 << i);
      if ((mask & bit) == 0) sum0 += arr[i];
    }
    double res = 0;
    for (int i = 0; i < n; i++) {
      int bit = (1 << i);
      if (mask & bit && arr[i] + sum0 > 0)
        res += f(mask ^ bit) * (arr[i] / (arr[i] + sum0));
    }
    return dp[mask] = res;
  }
}
int count_bit(int x) {
  int res = 0;
  while (x) res += (x & 1), x /= 2;
  return res;
}
int main() {
  for (int i = 0; i < (1 << 20); i++) dp[i] = -1;
  int hit = 0;
  scanf("%d %d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%lf", &arr[i]);
    if (arr[i] > 0) hit++;
  }
  for (int i = 0; i < n; i++)
    for (int j = 1; j < (1 << n); j++)
      if (count_bit(j) == min(hit, k) && (j & (1 << i))) ans[i] += f(j);
  for (int i = 0; i < n; i++) {
    printf("%.12lf", ans[i]);
    if (i < n - 1) printf(" ");
  }
  printf("\n");
}
