// RandomUsername (Nikola Jovanovic)
// MindCoding 2016 Round 3
// A

#include <bits/stdc++.h>
#define DBG false
#define debug(x) if(DBG) printf("(ln %d) %s = %d\n", __LINE__, #x, x);
#define lld long long
#define ff(i,a,b) for(int i=a; i<=b; i++)
#define fb(i,a,b) for(int i=a; i>=b; i--)
#define par pair<int, int>
#define fi first
#define se second
#define mid (l+r)/2
#define INF 1000000000
#define MAXN 8005
#define u32 unsigned int

using namespace std;

int n;
int a[MAXN];
char* byt;
char s[MAXN];
int curr;

int main()
{
    scanf("%s", s);
    int len = strlen(s);
    for(int i=0; i<=len-1; i+=8)
    {
        byt = (s+i);

        n++;
        if(byt[0] == '0') curr = -1;
        else
        {
            curr = 0;
            fb(i, 7, 1)
            {
                if(byt[i] == '0') curr++;
                else break;
            }
        }
        a[n] = curr;
    }
    bool bug = false; //bug? competitor!
    ff(i, 1, n)
    {
        if(a[i] != -1)
        {
            // locomotive?
            ff(j, 1, a[i])
            {
                if((i+j) > n || a[i+j] != -1)
                {
                    bug = true;
                    break;
                }
            }
        }
        if(bug)
            break;
    }
    if(bug)
        printf("No\n");
    else
        printf("Yes\n");
    return 0;
}