#include <bits/stdc++.h>
#pragma GCC optimize(3)
long long gcd(long long x, long long y) { return y == 0 ? x : gcd(y, x % y); }
long long exgcd(long long a, long long b, long long &x, long long &y) {
  if (b == 0) {
    x = 1;
    y = 0;
    return a;
  } else {
    long long d = exgcd(b, a % b, x, y);
    long long xtemp = x, ytemp = y;
    x = ytemp;
    y = xtemp - (a / b) * ytemp;
    return d;
  }
}
int main() {
  long long n, p, w, d;
  scanf("%lld", &n), scanf("%lld", &p), scanf("%lld", &w), scanf("%lld", &d);
  long long st = gcd(w, d);
  if (p % st) return !(printf("%d\n", -1));
  long long x, y, z;
  x = y = z = 0;
  while ((p - y * d) % w) y++;
  x = (p - y * d) / w;
  z = n - x - y;
  if (x >= 0 && y >= 0 && z >= 0)
    return !(printf("%lld %lld %lld\n", x, y, z));
  else
    return !(printf("%d\n", -1));
}
