#include <bits/stdc++.h>
using namespace std;
bool dp[105][10];
int pre[105][10];
string in;
stack<int> s;
void Print(int i, int j) {
  if (pre[i][j] == -1) {
    cout << in[i];
    return;
  }
  int k = pre[i][j];
  Print(i - 1, k);
  if ((k * 10 + in[i] - '0') % 8 == j) {
    cout << in[i];
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> in;
  memset(pre, -1, sizeof(pre));
  dp[0][(in[0] - '0') % 8] = 1;
  for (int i = 1; i < in.size(); ++i) {
    dp[i][(in[i] - '0') % 8] = 1;
    for (int j = 0; j < 8; ++j) {
      if (dp[i - 1][j] && dp[i][(j * 10 + in[i] - '0') % 8] == 0) {
        dp[i][(j * 10 + in[i] - '0') % 8] = 1;
        pre[i][(j * 10 + in[i] - '0') % 8] = j;
      }
      if (dp[i - 1][j] && dp[i][j] == 0) {
        dp[i][j] = 1;
        pre[i][j] = j;
      }
    }
  }
  for (int i = 0; i < in.size(); ++i)
    if (dp[i][0]) {
      cout << "YES" << endl;
      Print(i, 0);
      return 0;
    }
  cout << "NO" << endl;
  return 0;
}
