#include <iostream>
#include <string>

using namespace std;

int v[1005];

int main()
{
    int sz;

    string str;
    cin >> str;

    for (int i = 0; i < str.size() / 8; ++ i) {
        for (int j = 8 * i; j < 8 * (i + 1); ++ j)
            v[i] *= 2, v[i] += (str[j] - '0');

        if (str[8 * i] == '1')
            v[i] = __builtin_ctz(v[i]);
        else
            v[i] = -1;
    }

    int n = str.size() / 8;
    int cate = 0;
    int j;
    for (int i = 0; i < n; i = j) {
        if (v[i] == -1) {
            cout << "No\n";
            return 0;
        }
        cate ++;
        for (j = i + 1; j <= i + v[i]; ++ j)
            if (v[j] != -1) {
                cout << "No\n";
                return 0;
            }
            else
                ++ cate;
    }

    if (cate == n)
        cout << "Yes\n";
    else
        cout << "No\n";

    return 0;
}