#include <bits/stdc++.h>
using namespace std;
int main() {
  int a, b, c, d;
  cin >> a >> b >> c >> d;
  int pa = a, pb = b, pc = c, pd = d;
  a = pa;
  b = pb;
  c = pc;
  d = pd;
  vector<int> ans;
  if (a > 0) {
    ans.push_back(0);
    a--;
    while (a + b + c + d != 0) {
      if (ans.back() == 0) {
        if (b != 0) {
          b--;
          ans.push_back(1);
        } else {
          break;
        }
      } else if (ans.back() == 1) {
        if (a != 0) {
          ans.push_back(0);
          a--;
        } else if (c != 0) {
          ans.push_back(2);
          c--;
        } else {
          break;
        }
      } else if (ans.back() == 2) {
        if (d != 0) {
          ans.push_back(3);
          d--;
        } else if (b != 0) {
          ans.push_back(1);
          b--;
        } else {
          break;
        }
      } else {
        if (c != 0) {
          ans.push_back(2);
          c--;
        } else {
          break;
        }
      }
    }
    if (a + b + c + d == 0) {
      cout << "YES" << endl;
      for (int i = 0; i < ans.size(); i++) {
        cout << ans[i] << " ";
      }
      return 0;
    }
  }
  ans.resize(0);
  a = pa;
  b = pb;
  c = pc;
  d = pd;
  if (b >= 1) {
    ans.push_back(1);
    b--;
    while (a + b + c + d != 0) {
      if (ans.back() == 0) {
        if (b != 0) {
          b--;
          ans.push_back(1);
        } else {
          break;
        }
      } else if (ans.back() == 1) {
        if (a != 0) {
          ans.push_back(0);
          a--;
        } else if (c != 0) {
          ans.push_back(2);
          c--;
        } else {
          break;
        }
      } else if (ans.back() == 2) {
        if (d != 0) {
          ans.push_back(3);
          d--;
        } else if (b != 0) {
          ans.push_back(1);
          b--;
        } else {
          break;
        }
      } else {
        if (c != 0) {
          ans.push_back(2);
          c--;
        } else {
          break;
        }
      }
    }
    if (a + b + c + d == 0) {
      cout << "YES" << endl;
      for (int i = 0; i < ans.size(); i++) {
        cout << ans[i] << " ";
      }
      return 0;
    }
  }
  a = pa;
  b = pb;
  c = pc;
  d = pd;
  ans.resize(0);
  if (c >= 1) {
    ans.push_back(2);
    c--;
    while (a + b + c + d != 0) {
      if (ans.back() == 0) {
        if (b != 0) {
          b--;
          ans.push_back(1);
        } else {
          break;
        }
      } else if (ans.back() == 1) {
        if (a != 0) {
          ans.push_back(0);
          a--;
        } else if (c != 0) {
          ans.push_back(2);
          c--;
        } else {
          break;
        }
      } else if (ans.back() == 2) {
        if (d != 0) {
          ans.push_back(3);
          d--;
        } else if (b != 0) {
          ans.push_back(1);
          b--;
        } else {
          break;
        }
      } else {
        if (c != 0) {
          ans.push_back(2);
          c--;
        } else {
          break;
        }
      }
    }
    if (a + b + c + d == 0) {
      cout << "YES" << endl;
      for (int i = 0; i < ans.size(); i++) {
        cout << ans[i] << " ";
      }
      return 0;
    }
  }
  a = pa;
  b = pb;
  c = pc;
  d = pd;
  ans.resize(0);
  if (d >= 1) {
    ans.push_back(3);
    d--;
    while (a + b + c + d != 0) {
      if (ans.back() == 0) {
        if (b != 0) {
          b--;
          ans.push_back(1);
        } else {
          break;
        }
      } else if (ans.back() == 1) {
        if (a != 0) {
          ans.push_back(0);
          a--;
        } else if (c != 0) {
          ans.push_back(2);
          c--;
        } else {
          break;
        }
      } else if (ans.back() == 2) {
        if (d != 0) {
          ans.push_back(3);
          d--;
        } else if (b != 0) {
          ans.push_back(1);
          b--;
        } else {
          break;
        }
      } else {
        if (c != 0) {
          ans.push_back(2);
          c--;
        } else {
          break;
        }
      }
    }
    if (a + b + c + d == 0) {
      cout << "YES" << endl;
      for (int i = 0; i < ans.size(); i++) {
        cout << ans[i] << " ";
      }
      return 0;
    }
  }
  cout << "NO";
  return 0;
}
