#include <bits/stdc++.h>
using namespace std;
double _eps = 1e-6;
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
int main() {
  int a, b, c, d;
  cin >> a >> b >> c >> d;
  deque<int> l;
  while (a && b) {
    l.push_back(0);
    l.push_back(1);
    a--, b--;
  }
  if (a) {
    if (l.empty()) {
      l.push_back(0);
      a--;
    }
    if (l.front() == 1 && a) l.push_front(0), a--;
    if (l.back() == 1 && a) l.push_back(0), a--;
  }
  if (b) {
    if (l.empty()) l.push_back(1), b--;
    if (l.front() == 0 && b) l.push_front(1), b--;
    if (l.back() == 0 && b) l.push_back(1), b--;
  }
  while (b && c) {
    if (l.empty()) {
      l.push_back(1);
      b--;
      continue;
    }
    if (l.front() == 1)
      l.push_front(2), c--;
    else if (l.back() == 1)
      l.push_back(2), c--;
    else if (l.front() == 2)
      l.push_front(1), b--;
    else if (l.back() == 2)
      l.push_back(1), b--;
    else {
      cout << "NO", puts("");
      return 0;
    }
  }
  if (b) {
    if (l.empty()) {
      l.push_back(1);
      b--;
    }
    if (l.front() == 2) l.push_front(1), b--;
    if (l.back() == 2 && b) l.push_back(1), b--;
    if (b) {
      cout << "NO", puts("");
      return 0;
    }
  }
  if (c) {
    if (l.empty()) {
      l.push_back(2);
      c--;
    }
    if (l.front() == 1) l.push_front(2), c--;
    if (l.back() == 1 && c) l.push_back(2), c--;
  }
  while (c && d) {
    if (l.empty()) {
      l.push_back(2);
      c--;
    }
    if (l.front() == 2)
      l.push_front(3), d--;
    else if (l.back() == 2)
      l.push_back(3), d--;
    else if (l.front() == 3)
      l.push_front(2), c--;
    else if (l.back() == 3)
      l.push_back(2), c--;
    else {
      cout << "NO", puts("");
      return 0;
    }
  }
  if (c) {
    if (l.empty()) {
      l.push_back(2);
      c--;
    }
    if (l.front() == 3) l.push_front(2), c--;
    if (l.back() == 3 && c) l.push_back(2), c--;
    if (c) {
      cout << "NO", puts("");
      return 0;
    }
  }
  if (d) {
    if (l.empty()) {
      l.push_back(3);
      d--;
    }
    if (l.front() == 2) l.push_front(3), d--;
    if (l.back() == 2 && d) l.push_back(3), d--;
    if (d) {
      cout << "NO", puts("");
      return 0;
    }
  }
  if (a || b || c || d) {
    cout << "NO", puts("");
    return 0;
  }
  cout << "YES", puts("");
  for (int x : l) cout << x << " ";
  puts("");
  return 0;
}
