#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e18;
const long long mod = 1e9 + 7;
const long long MOD = 998244353;
void printn(int n) {
  cout << "YES\n";
  cout << n << '\n';
}
void solve() {
  string s;
  cin >> s;
  long long ans = 0;
  if ((long long)s.size() <= 2) {
    int p = stoi(s);
    bool good = 0;
    int ans = -1;
    if (p % 8 == 0) good = 1, ans = p;
    for (long long i = 0; i < (long long)s.size(); i++) {
      if (s[i] == '0') good = 1, ans = 0;
    }
    if (good) {
      cout << "YES\n";
      cout << ans << '\n';
    } else
      cout << "NO\n";
  } else {
    for (int i = 0; i < (long long)s.size(); ++i) {
      for (int j = i + 1; j < (long long)s.size(); ++j) {
        for (int k = j + 1; k < (long long)s.size(); ++k) {
          vector<int> samples;
          int a = s[i] - '0', b = s[j] - '0', c = s[k] - '0';
          int p = (a)*100 + (b)*10 + (c);
          int q = b * 10 + c;
          int qq = a * 10 + c;
          int r = c;
          int p1 = (a)*10 + b;
          samples.push_back(a);
          samples.push_back(b);
          samples.push_back(c);
          samples.push_back(p);
          samples.push_back(q);
          samples.push_back(qq);
          samples.push_back(p1);
          for (long long z = 0; z < (long long)samples.size(); z++) {
            if (samples[z] % 8 == 0) {
              printn(samples[z]);
              return;
            }
          }
        }
      }
    }
    cout << "NO\n";
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) solve();
  return 0;
}
