#include <bits/stdc++.h>
using namespace std;
bool canClimb(int personSize, int carSize) { return personSize <= carSize; }
bool likeIt(int personSize, int carSize) { return 2 * personSize >= carSize; }
bool both(int personSize, int carSize) {
  return canClimb(personSize, carSize) && likeIt(personSize, carSize);
}
const int MAX_VAL = 201;
void solve(int V1, int V2, int V3, int VM) {
  for (int a = 1; a <= MAX_VAL; a++) {
    for (int b = a + 1; b <= MAX_VAL; b++) {
      for (int c = b + 1; c <= MAX_VAL; c++) {
        if (both(V1, c) && both(V2, b) && both(V3, a) && canClimb(VM, a) &&
            canClimb(VM, b) && canClimb(VM, c) && likeIt(VM, a) &&
            !likeIt(VM, b) && !likeIt(VM, c)) {
          cout << c << '\n';
          cout << b << '\n';
          cout << a << '\n';
          return;
        }
      }
    }
  }
  cout << -1 << '\n';
}
int main() {
  int V1, V2, V3, VM;
  while (cin >> V1 >> V2 >> V3 >> VM) {
    solve(V1, V2, V3, VM);
  }
}
