#include <bits/stdc++.h>
#pragma GCC optimze("Ofast")
using namespace std;
const long long infl = 0x3f3f3f3f3f3f3f3fLL;
const long long infi = 0x3f3f3f3f;
const long long mod = 998244353;
const long long N = 2e5 + 5;
void solve() {
  long long n, p, w, d;
  cin >> n >> p >> w >> d;
  long long x = infl, y = infl;
  for (long long i = 0; i <= w - 1; i++) {
    if (p - i * d >= 0 && (p - i * d) % w == 0) {
      y = i;
      x = (p - i * d) / w;
      break;
    }
  }
  if (x + y <= n) {
    cout << x << " " << y << " " << n - x - y;
  } else
    cout << -1;
}
signed main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  cout << fixed << setprecision(15);
  long long t = 1;
  while (t--) solve();
  return 0;
}
long long powm(long long a, long long b) {
  long long res = 1;
  while (b) {
    if (b & 1) res = (res * a) % mod;
    a = (a * a) % mod;
    b >>= 1;
  }
  return res;
}
long long divide(long long a, long long b) {
  return ((a % mod) * powm(b, mod - 2)) % mod;
}
long long mul(long long a, long long b) {
  return ((a % mod) * (b % mod)) % mod;
}
long long add(long long a, long long b) { return (a % mod + b % mod) % mod; }
