#include <bits/stdc++.h>
using namespace std;
const int maxn = 4000 + 50;
const int maxm = 2000000 + 1000;
const int maxt = 3000000 + 100;
const int maxk = 10 + 3;
const long long unit = 1LL;
const int INF = 0x3f3f3f3f;
const long long Inf = 0x3f3f3f3f3f3f3f3fLL;
const double eps = 1e-3;
const double inf = 1e15;
const double pi = acos(-1.0);
const long long mod = 998244353LL, gg = 3LL, inv2 = 499122177LL;
inline long long read() {
  long long x = 0;
  bool t = false;
  char ch = getchar();
  while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
  if (ch == '-') t = true, ch = getchar();
  while (ch <= '9' && ch >= '0') x = x * 10 + ch - 48, ch = getchar();
  return t ? -x : x;
}
long long n, p, w, d;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> p >> w >> d;
  long long x = 0, y = 0, z = max(0LL, n - p / d);
  long long ok = false;
  long long lim = 0;
  if (!p)
    lim = n;
  else
    lim = n - ((p - 1) / w + 1);
  for (long long t = 0; t < w - d; ++t) {
    long long tmp = z + t;
    if (tmp > lim) break;
    if ((p - d * (n - tmp)) % (w - d) == 0) {
      x = (p - d * (n - tmp)) / (w - d);
      y = n - tmp - x;
      z = tmp;
      ok = true;
      break;
    }
  }
  if (!ok)
    cout << -1 << '\n';
  else
    cout << x << ' ' << y << ' ' << z << '\n';
  return 0;
}
