#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, m, n) for(int i=int(m);i> p; reverse(all(p)); int mode = 1; if (true) { int n = p[0] - '0'; if (n < 2 || n > 4) { cout << "No" << endl; return 0; } } rep(i, 0, p.size() - 1) { int n = p[i] - '0'; if (mode == 1) { if (n >= 2 && n <= 4) { p[i + 1] = (char) (p[i + 1] - 1); } else if (n == 6 || n == 7) { mode = 2; } else { cout << "No" << endl; return 0; } } else { if (n < 6 || n > 7) { cout << "No" << endl; return 0; } } } if (mode == 2) { int n = p[p.size() - 1] - '0'; if (n < 6 || n > 7) { cout << "No" << endl; return 0; } } else { int n = p[p.size() - 1] - '0'; if (!(n == 0 || n == 6 || n == 7)) { cout << "No" << endl; return 0; } } cout << "Yes" << endl; return 0; }