#include<iostream>
#include<map>
#include<algorithm>
#define Pair map<char, pair<char, char> >
#define x first
#define y second
#define mk make_pair

using namespace std;

Pair root;

void init(Pair* root){
  root->insert(mk('A', mk('Y', 'X')));
  root->insert(mk('B', mk('X', 'Y')));
  root->insert(mk('W', mk('Y', 'B')));
  root->insert(mk('X', mk('Z', '.')));
  root->insert(mk('Y', mk('.', 'X')));
  root->insert(mk('Z', mk('B', 'W')));
}

bool solve(string& s){
  char c='A';
  for(int i=0; i<s.size(); ++i){
    c = (s[i] == '1' ? root[c].x : root[c].y);
    if(c == '.') return false;
  }
  return c == 'B';
}

int main(){
  init(&root);
  string s;
  while(1){
    cin >> s;
    if(s == "#") break;
    if(solve(s)) cout << "Yes" << endl;
    else cout << "No" << endl;
  }
  return 0;
}