#include using namespace std; #define REP(i,a,n) for(int i=(a); i<(int)(n); i++) #define rep(i,n) REP(i,0,n) #define FOR(it,c) for(__typeof((c).begin()) it=(c).begin(); it!=(c).end(); ++it) #define ALLOF(c) (c).begin(), (c).end() typedef long long ll; typedef unsigned long long ull; bool solve(const string& p){ if(p.size() == 1) return false; if(p[0] == '1'){ if(p[p.size()-1] != '2' && p[p.size()-1] != '3' &&p[p.size()-1] != '4') return false; REP(i,1,p.size()-1){ if(p[i] != '3' && p[i] != '4' && p[i] != '5') return false; } return true; }else{ if(p[p.size()-1] != '2' && p[p.size()-1] != '3' &&p[p.size()-1] != '4') return false; int pos = 0; rep(i,p.size()){ int x = p[i]-'0'; if(x<6) break; pos = i; } if(pos == p.size()-1) return false; rep(i,pos){ if(p[i] != '6' && p[i] != '7') return false; } if(p[pos] != '7' && p[pos] != '8') return false; REP(i,pos+1,p.size()-1){ if(p[i] != '3' && p[i] != '4' && p[i] != '5') return false; } return true; } } int main(){ rep(i,1000){ stringstream ss; ss << i; cout << i << "\t" << solve(ss.str()) << endl; } return 0; } int main_(){ string p; cin >> p; if(solve(p)) cout << "Yes" << endl; else cout << "No" << endl; return 0; }