#include #define REP(i,n) for (long i=0;i<(n);i++) #define FOR(i,a,b) for (long i=(a);i<(b);i++) #define RREP(i,n) for(long i=n;i>0;i--) #define RFOR(i,a,b) for(long i=(a);i>(b);i--) #define dump1d_arr(array) REP(i,array.size()) cerr << #array << "[" << (i) << "] ==> " << (array[i]) << endl; #define dump2d_arr(array) REP(i,array.size()) REP(j,array[i].size()) cerr << #array << "[" << (i) << "]" << "[" << (j) << "] ==> " << (array[i][j]) << endl; #define dump(x) cerr << #x << " => " << (x) << endl; #define CLR(vec) { REP(i,vec.size()) vec[i] = 0; } #define llINF (long long) 9223372036854775807 #define loINF (long) 2147483647 #define shINF (short) 32767 #define SORT(c) sort((c).begin(),(c).end()) #define MIN(vec) *min_element(vec.begin(), vec.end()); #define MAX(vec) *max_element(vec.begin(), vec.end()); #define UNIQ(vec) vec.erase(unique(vec.begin(), vec.end()),vec.end()); #define IN(n,m) (!(m.find(n) == m.end())) #define TO_INT(vec,s) REP(i,s.length()){vec.push_back(s[i] - ‘0’);} #define ENUM_v(vec) for (auto e : vec) #define dump_MAP(m) for(auto itr = m.begin(); itr != m.end(); ++itr) { cerr << itr->first << " --> " << itr->second << endl; } #define FINDL(vec,x) (lower_bound(vec.begin(),vec.end(),x) - vec.begin()) #define FINDU(vec,x) (upper_bound(vec.begin(),vec.end(),x) - vec.begin()) #define ROUND(N) setprecision(N) using namespace std; typedef vector VI; typedef vector VVI; typedef pair pr; typedef vector VP; struct Order { bool operator() (pr const& a,pr const& b) const { return a.first > b.first || ((a.first == b.first) && (a.second > b.second)); } }; int main(void) { string p; cin >> p; long l = p.size(); long i = l-2; if (p[l-1] != '2' && p[l-1] != '3' && p[l-1] != '4') { cout << "No" << endl; exit(0); } while (1) { if (p[i] == '3' || p[i] == '4' || p[i] == '5') i--; else break; } if (i != 0) { if (p[i] != '7' && p[i] != '8') { cout << "No" << endl; exit(0); } RREP(j,i-1) { if (p[j] != '6' && p[j] != '7') { cout << "No" << endl; exit(0); } } } if (p[i] == '1' || p[i] == '7' || p[i] == '8') { cout << "Yes" << endl; exit(0); } else { cout << "No" << endl; exit(0); } }