#include <bits/stdc++.h>
using LL = long long;
using ULL = unsigned long long;
using namespace std;
long long cnt[6];
bool ok = false;
long long sum;
vector<long long> ans;
void build(long long pos) {
  if (ok) return;
  if (pos >= sum) {
    ok = true;
    return;
  }
  long long pre = ans[pos - 1];
  if (cnt[pre - 1] > 0) {
    cnt[pre - 1]--;
    ans[pos] = pre - 1;
    build(pos + 1);
    cnt[pre - 1]++;
  } else if (cnt[pre + 1] > 0) {
    cnt[pre + 1]--;
    ans[pos] = pre + 1;
    build(pos + 1);
    cnt[pre + 1]++;
  }
}
signed main() {
  ios::sync_with_stdio(false), cin.tie(NULL);
  for (long long i = (1); i < (5); i++) {
    cin >> cnt[i];
    sum += cnt[i];
  }
  ans.resize(sum, -1);
  for (long long i = (1); i < (5); i++) {
    if (cnt[i] > 0 && !ok) {
      cnt[i]--;
      ans[0] = i;
      build(1);
      cnt[i]++;
    }
  }
  if (ok) {
    cout << "YES\n";
    for (long long X : ans) cout << X - 1 << ' ';
  } else {
    cout << "NO\n";
  }
  return 0;
}
