#include <bits/stdc++.h>
using namespace std;
string S;
int dp[110][15][2];
bool solve(int ind, int tot, bool flag) {
  if (dp[ind][tot][flag] != -1) return dp[ind][tot][flag];
  if (ind == (int)S.size()) {
    if (tot == 0 && flag) return dp[ind][tot][flag] = 1;
    return dp[ind][tot][flag] = 0;
  }
  bool ret = 0;
  ret |= solve(ind + 1, tot, flag);
  int d = S[ind] - '0';
  ret |= solve(ind + 1, (tot * 10 + d) % 8, 1);
  return dp[ind][tot][flag] = ret;
}
void backtrack(int ind, int tot, bool flag) {
  if (ind == (int)S.size()) {
    cout << "\n";
    return;
  }
  if (dp[ind + 1][tot][flag]) {
    backtrack(ind + 1, tot, flag);
  } else {
    cout << S[ind];
    int d = S[ind] - '0';
    backtrack(ind + 1, (tot * 10 + d) % 8, 1);
  }
}
int main() {
  cin >> S;
  memset(dp, -1, sizeof dp);
  int y = solve(0, 0, 0);
  if (!y)
    cout << "NO\n";
  else {
    cout << "YES\n";
    backtrack(0, 0, 0);
  }
}
