#include <bits/stdc++.h>
using namespace std;
vector<int> go(int x, vector<int> a) {
  vector<int> ret;
  ret.push_back(x);
  a[x]--;
  while (1) {
    if (x > 0 && a[x - 1] > 0)
      x--;
    else if (x < 3 && a[x + 1] > 0)
      x++;
    else
      return ret;
    ret.push_back(x);
    a[x]--;
  }
  return ret;
}
int main() {
  vector<int> a(4);
  for (int i = 0; i < 4; i++) scanf("%d", &a[i]);
  for (int i = 0; i < 4; i++) {
    if (a[i] == 0) continue;
    auto v = go(i, a);
    if (v.size() == a[0] + a[1] + a[2] + a[3]) {
      puts("YES");
      for (int k = 0; k < v.size(); k++) {
        if (k > 0) putchar(' ');
        printf("%d", v[k]);
      }
      puts("");
      return 0;
    }
  }
  puts("NO");
}
