#include <bits/stdc++.h>
using namespace std;
string s;
int myfind(int lim, int inc) {
  int num;
  for (int i = 0; i < lim; ++i) {
    num = s[i] - '0';
    if ((num - inc) % 4 == 0) return num;
    for (int j = i + 1; j < lim; ++j) {
      int num1 = num * 10 + (s[j] - '0');
      if ((num1 - inc) % 4 == 0) return num1;
      for (int k = j + 1; k < lim; ++k) {
        int num2 = num1 * 10 + (s[k] - '0');
        if ((num2 - inc) % 4 == 0) return num2;
      }
    }
  }
  return -1;
}
int main() {
  cin >> s;
  if (s.find("0") != string::npos) {
    cout << "YES\n0" << endl;
    return 0;
  }
  if (s.find("8") != string::npos) {
    cout << "YES\n8" << endl;
    return 0;
  }
  int n = s.size();
  for (int i = 0; i < n; ++i) {
    int f = -1;
    switch (s[i]) {
      case '6':
        f = myfind(i, 1);
        if (f != -1) {
          cout << "YES\n" << f << '6' << endl;
          return 0;
        };
        break;
      case '4':
        f = myfind(i, 2);
        if (f != -1) {
          cout << "YES\n" << f << '4' << endl;
          return 0;
        };
        break;
      case '2':
        f = myfind(i, 3);
        if (f != -1) {
          cout << "YES\n" << f << '2' << endl;
          return 0;
        };
        break;
    }
  }
  cout << "NO\n";
}
