#include <bits/stdc++.h>
using namespace std;
int a, b, c, s;
vector<double> x, y11, z;
double rx, ry, rz, mn = -1000000000;
double mln(double x) { return log(x); }
void upd(double nx, double ny, double nz) {
  if (nx + ny + nz > (s + 1e-7)) return;
  double cur = 0;
  if (a) cur += a * mln(nx);
  if (b) cur += b * mln(ny);
  if (c) cur += c * mln(nz);
  if (cur > mn) {
    mn = cur;
    rx = nx;
    ry = ny;
    rz = nz;
  }
}
int main() {
  scanf("%d %d %d %d", &s, &a, &b, &c);
  if (a == 0 && b == 0 && c == 0) {
    puts("0.0 0.0 0.0");
    return 0;
  }
  if (a != 0) {
    double S = s;
    double m = 1 + b * 1. / a + c * 1. / a;
    double x0 = S / m;
    x.push_back(x0);
    y11.push_back(x0 * b * 1. / a);
    z.push_back(x0 * c * 1. / a);
  } else if (b != 0) {
    double S = s;
    double m = 1 + a * 1. / b + c * 1. / b;
    double x0 = S / m;
    x.push_back(x0 * a * 1. / b);
    y11.push_back(x0);
    z.push_back(x0 * c * 1. / b);
  } else if (c != 0) {
    double S = s;
    double m = 1 + a * 1. / c + b * 1. / c;
    double x0 = S / m;
    x.push_back(x0 * a * 1. / c);
    y11.push_back(x0 * b * 1. / c);
    z.push_back(x0);
  }
  double S = s;
  x.push_back(0);
  y11.push_back(0);
  z.push_back(s);
  x.push_back(0);
  y11.push_back(s);
  z.push_back(0);
  x.push_back(s);
  y11.push_back(0);
  z.push_back(0);
  if (a + b) {
    z.push_back(0);
    z.push_back(0);
    x.push_back(a * c / (b + a + 0.));
    y11.push_back(S - a * c / (b + a + 0.));
    x.push_back(b * c / (b + a + 0.));
    y11.push_back(S - b * c / (b + a + 0.));
  }
  if (b + c) {
    x.push_back(0);
    x.push_back(0);
    y11.push_back(b * a / (b + c + 0.));
    z.push_back(S - b * a / (b + c + 0.));
    y11.push_back(c * a / (b + c + 0.));
    z.push_back(S - c * a / (b + c + 0.));
  }
  if (a + c) {
    y11.push_back(0);
    y11.push_back(0);
    x.push_back(a * b / (c + a + 0.));
    z.push_back(S - a * b / (c + a + 0.));
    x.push_back(c * b / (c + a + 0.));
    z.push_back(S - c * b / (c + a + 0.));
  }
  for (int i = 0; i < x.size(); i++) {
    upd(x[i], y11[i], z[i]);
  }
  printf("%.11lf %.11lf %.11lf\n", rx, ry, rz);
  return 0;
}
