#include <bits/stdc++.h>
using namespace std;
const int N = 4;
int T, n;
int c[N];
deque<int> q;
int main() {
  for (int i = 0; i < N; i++) {
    scanf("%d", c + i);
    n += c[i];
  }
  if (c[0])
    q.push_back(0), c[0]--;
  else if (c[1])
    q.push_back(1), c[1]--;
  else if (c[2])
    q.push_back(2), c[2]--;
  else if (c[3])
    q.push_back(3), c[3]--;
  for (int i = 1; i < n; i++) {
    for (int j = 0; j < N; j++)
      if (c[j] && (abs(j - q.back()) == 1 || abs(j - q.front()) == 1)) {
        c[j]--;
        if (abs(j - q.back()) == 1)
          q.push_back(j);
        else if (abs(j - q.front()) == 1)
          q.push_front(j);
        break;
      }
  }
  bool flag = true;
  for (int i = 0; i < N; i++)
    if (c[i]) flag = false;
  if (!flag)
    puts("NO");
  else {
    puts("YES");
    for (auto e : q) printf("%d ", e);
    puts("");
  }
  return 0;
}
