#include <bits/stdc++.h>
using namespace std;
string v;
int dp[105][8];
pair<int, int> pre[105][8];
int main() {
  cin >> v;
  memset(dp, -1, sizeof(dp));
  int n = v.length();
  dp[0][0] = 0;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < i; j++) {
      for (int k = 0; k < 8; k++) {
        if (dp[j][k] != -1) {
          int res = (k * 10 + v[i - 1] - '0') % 8;
          if (dp[i][res] == -1 || dp[i][res] > dp[j][k] + i - j - 1) {
            dp[i][res] = dp[j][k] + i - j - 1;
            pre[i][res] = make_pair(j, k);
          }
        }
      }
    }
  }
  int index = -1, mm = 100;
  for (int i = 1; i <= n; i++) {
    if (dp[i][0] != -1 && dp[i][0] + n - i < mm) {
      index = i;
      mm = dp[i][0] + n - i;
    }
  }
  if (index != -1) {
    printf("YES\n");
    string ans = "";
    pair<int, int> tmp = make_pair(index, 0);
    do {
      ans.append(1, v[tmp.first - 1]);
      tmp = pre[tmp.first][tmp.second];
    } while (tmp.first != 0);
    reverse(ans.begin(), ans.end());
    printf("%s\n", ans.c_str());
  } else {
    printf("NO\n");
  }
  return 0;
}
