#include <bits/stdc++.h>
using namespace std;
int original_nums[4];
int nums[4];
int sequence[100001];
int counter;
bool in_bounds(int x) { return 0 <= x and x < 4; }
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int total = 0;
  for (int i = 0; i < 4; i++) {
    cin >> nums[i];
    original_nums[i] = nums[i];
    total += nums[i];
  }
  for (int ii = 0; ii < 4; ii++) {
    int curr = ii;
    int delta = -1;
    if (ii >= 2) delta = 1;
    memset(sequence, -1, sizeof(sequence));
    for (int i = 0; i < 4; i++) {
      nums[i] = original_nums[i];
    }
    counter = 0;
    int prevCurr = -1;
    for (int i = 0; i < total; i++) {
      if (curr == prevCurr) goto thing;
      if (nums[curr] > 0) {
        sequence[counter++] = curr;
        nums[curr]--;
      }
      prevCurr = curr;
      if (in_bounds(curr + delta) and nums[curr + delta] > 0)
        curr += delta;
      else if (in_bounds(curr - delta) and nums[curr - delta] > 0)
        curr -= delta;
    }
    for (int i = 0; i < 4; i++) {
      if (nums[i] > 0) {
        goto thing;
      }
    }
    for (int i = 0; i < total; i++) {
      if (sequence[i] == -1) {
        goto thing;
      }
    }
    cout << "YES" << endl;
    for (int i = 0; i < total; i++) {
      cout << sequence[i];
      if (i < total - 1) cout << " ";
    }
    cout << endl;
    return 0;
  thing:;
  }
  cout << "NO" << endl;
  return 0;
}
