#include <bits/stdc++.h>
using namespace std;
int check(int a, int b, int c) {
  int ab = 10 * a + b;
  if (ab % 8 == 0) {
    return ab;
  }
  int bc = 10 * b + c;
  int ac = 10 * a + c;
  if (bc % 8 == 0) return bc;
  if (ac % 8 == 0) return ac;
  if (a % 8 == 0) return a;
  if (b % 8 == 0) return b;
  if (c % 8 == 0) return c;
  return -1;
}
int main(int argc, char const *argv[]) {
  string s;
  cin >> s;
  int n = s.length();
  int a[n];
  for (int i = 0; i < n; ++i) {
    a[i] = s[i] - '0';
  }
  if (n == 1) {
    if (a[0] % 8 == 0) {
      cout << "YES" << endl;
      cout << a[0] << endl;
    } else
      cout << "NO" << endl;
    return 0;
  }
  if (n == 2) {
    int foo = 10 * a[0] + a[1];
    if (a[0] % 8 == 0 || a[1] % 8 == 0 || foo % 8 == 0) {
      int temp;
      if (a[0] % 8 == 0)
        temp = a[0];
      else if (a[1] % 8 == 0)
        temp = a[1];
      else
        temp = foo;
      cout << "YES" << endl;
      cout << temp << endl;
    } else
      cout << "NO" << endl;
    return 0;
  }
  int ans = -1;
  for (int i = 0; i < n; ++i) {
    for (int j = i + 1; j < n; j++) {
      for (int k = j + 1; k < n; k++) {
        int foo = 100 * a[i] + 10 * a[j] + a[k];
        if (foo % 8 == 0) {
          ans = foo;
          break;
        }
        foo = check(a[i], a[j], a[k]);
        if (foo % 8 == 0) {
          ans = foo;
          break;
        }
      }
    }
  }
  if (ans != -1) {
    cout << "YES" << endl;
    cout << ans << endl;
  } else {
    cout << "NO" << endl;
  }
  return 0;
}
