#include <bits/stdc++.h>
using namespace std;
const long long INF = int(1e9) + 123;
inline void boost() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
}
int main() {
  boost();
  string n;
  cin >> n;
  if (n == "8") {
    cout << "YES" << endl << 8;
    return 0;
  }
  if (n == "0") {
    cout << "YES" << endl << 0;
    return 0;
  }
  if (n.size() == 2) {
    if (n[0] == '0' || n[1] == '0') {
      cout << "YES" << endl << 0;
      return 0;
    }
    if (((int(n[0]) + 2) % 10 * 10 + (int(n[1]) + 2) % 10) % 8 == 0) {
      cout << "YES" << endl << n;
      return 0;
    }
    if (n[0] == '8' || n[1] == '8') {
      cout << "YES" << endl << 8;
      return 0;
    } else {
      cout << "NO";
      return 0;
    }
  } else {
    for (int i = 0; i < n.size(); i++) {
      for (int j = i + 1; j < n.size(); j++) {
        for (int k = j + 1; k < n.size(); k++) {
          if (n[i] == '0' || n[j] == '0' || n[k] == '0') {
            cout << "YES" << endl << 0;
            return 0;
          }
          if (n[i] == '8' || n[j] == '8' || n[k] == '8') {
            cout << "YES" << endl << 8;
            return 0;
          }
          if (((int(n[i]) + 2) % 10 * 100 + (int(n[j]) + 2) % 10 * 10 +
               (int(n[k]) + 2) % 10) %
                  8 ==
              0) {
            cout << "YES" << endl << n[i] << n[j] << n[k];
            return 0;
          }
          if (((int(n[i]) + 2) % 10 * 10 + (int(n[j]) + 2) % 10) % 8 == 0) {
            cout << "YES" << endl << n[i] << n[j];
            return 0;
          }
          if (((int(n[i]) + 2) % 10 * 10 + (int(n[k]) + 2) % 10) % 8 == 0) {
            cout << "YES" << endl << n[i] << n[k];
            return 0;
          }
          if (((int(n[j]) + 2) % 10 * 10 + (int(n[k]) + 2) % 10) % 8 == 0) {
            cout << "YES" << endl << n[j] << n[k];
            return 0;
          }
        }
      }
    }
  }
  cout << "NO";
  exit(0);
}
