#include <bits/stdc++.h>
using namespace std;
using ll = long long;
inline int read();
const int M = 100016, MOD = 1000000007;
int c[4], xc[4];
int save[M];
int main(void) {
  int tot = 0;
  for (int i = 0; i <= 3; ++i) tot += (c[i] = read());
  for (int tosh = 0; tosh <= 3; ++tosh)
    if (c[tosh]) {
      int suc = 1;
      memcpy(xc, c, sizeof(xc));
      save[1] = tosh;
      --xc[tosh];
      for (int i = 2; i <= tot; ++i) {
        int in_suc = 0;
        for (int num = save[i - 1] - 1; num <= save[i - 1] + 1; num += 2)
          if (num >= 0 && num <= 3) {
            if (xc[num]) {
              xc[num]--;
              save[i] = num;
              in_suc = 1;
              break;
            }
          }
        if (!in_suc) {
          suc = 0;
          break;
        }
      }
      if (suc) {
        printf("YES\n");
        for (int i = 1; i <= tot; ++i) printf("%d ", save[i]);
        return 0;
      }
    }
  printf("NO\n");
  return 0;
}
inline int read() {
  int x = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  return x * f;
}
