#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
template <typename T, typename K>
inline void umax(T &a, K b) {
  a = max(a, (T)b);
}
template <typename T, typename K>
inline void umin(T &a, K b) {
  a = min(a, (T)b);
}
const int32_t N = 1e5 + 10;
const long long INF = 1e16 + 10;
const pair<long long, long long> NINF = make_pair(INF, INF);
const long double EPS = 1e-6;
const long long II = 1e9;
const long long MOD = 1e9 + 7;
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long n, p, w, d;
  cin >> n >> p >> w >> d;
  long long mx = p / w;
  long long ans = 0;
  for (long long win = mx; win + N > mx && win >= 0; win--) {
    long long ost = p - win * w;
    long long draw = ost / d;
    if (draw + win > n) continue;
    if (win * w + draw * d == p) {
      cout << win << ' ' << draw << ' ' << n - win - draw << '\n';
      return 0;
    }
  }
  cout << "-1\n";
  return 0;
}
