#include <bits/stdc++.h>
using namespace std;
const int maxn = 1007;
const long long mod = 998244353;
const long long ool = 1e18 + 7;
const int ooi = 1e9 + 7;
const int apsz = 26;
const int o = 1;
const int maxd = 20;
const double eps = 1e-8;
void exgcd(long long a, long long b, long long& d, long long& x, long long& y) {
  if (!b) {
    d = a;
    x = 1;
    y = 0;
    return;
  } else {
    exgcd(b, a % b, d, y, x);
    y -= x * (a / b);
  }
}
long long n, p, w, d;
long long getup(long long up, long long x, long long vv) {
  if (up - x < 0) return (up - x) / vv - (long long)((up - x) % vv != 0);
  return (up - x) / vv;
}
long long getdown(long long dw, long long x, long long vv) {
  if (dw - x > 0) return (dw - x) / vv + (long long)((dw - x) % vv != 0);
  return (dw - x) / vv;
}
int main(void) {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> p >> w >> d;
  if (p == 0) return cout << 0 << " " << 0 << " " << n << endl, 0;
  long long v = w - d;
  long long dmv = d % v;
  long long pmv = p % v;
  if (pmv == 0 || dmv == 0) {
    if (dmv == 0 && pmv == 0) {
      long long ux, vx;
      ux = min(p / d, n);
      vx = p / w + (p % w != 0);
      if (vx > ux) return cout << -1 << endl, 0;
      long long xy = ux;
      long long x = (p - xy * d) / v;
      long long y = xy - x;
      long long z = n - x - y;
      return cout << x << " " << y << " " << z << endl, 0;
    } else if (pmv == 0) {
      long long ux = min(p / d, n) / v;
      long long tv = p / w + (p % w != 0);
      long long vx = tv / v + (tv % v != 0);
      if (vx > ux) return cout << -1 << endl, 0;
      long long xy = vx * v;
      long long x = (p / v - vx * d);
      long long y = xy - x;
      long long z = n - x - y;
      return cout << x << " " << y << " " << z << endl, 0;
    } else
      return cout << -1 << endl, 0;
    return 0;
  }
  long long cx, g, cy;
  exgcd(dmv, v, g, cx, cy);
  if (pmv % g)
    cout << -1 << endl;
  else {
    long long dd = dmv * (pmv / g);
    long long vv = v * 1;
    cx = cx * (pmv / g);
    long long up = getup(min(p / d, n), cx, vv);
    long long dw = getdown(p / w + (p % w != 0), cx, vv);
    if (up < dw)
      return cout << -1 << endl, 0;
    else {
      long long k = dw;
      cx += k * vv;
      long long x = (p - cx * d) / v;
      long long y = cx - x;
      long long z = n - x - y;
      cout << x << " " << y << " " << z << endl;
    }
  }
  return 0;
}
