#include<iostream>
#include<queue>
#define loop(i,a,b) for(int i=a;i<b;i++)
#define rep(i,a) loop(i,0,a)
using namespace std;

//x:1,z:2,y:3,w:4,a:0,b:5

int main(){
  int dt[1000][1000];
  rep(i,1000)rep(j,1000)dt[i][j]=10000;
  dt[0][1]=dt[3][1]=dt[5][3]=dt[2][4]=dt[4][5]=0;
  dt[0][3]=dt[1][2]=dt[4][3]=dt[5][1]=dt[2][5]=1;
  int x=0;
  string s;
  while(1){
    cin>>s;
    if(s=="#")break;
    queue<int> que;
    que.push(0);
    rep(i,s.size()){
      if(que.size()==0)break;
      int now=que.front();
      que.pop();
      
      rep(j,6){
	if(dt[now][j]==(int)(s[i]-'0')){
	  que.push(j);
	}
      }
    }
    //cout<<que.size()<<endl;
    bool check=false;
    while(!que.empty()){
      if(que.front()==5){
	check=true;
	break;
      }
      que.pop();
    }
    if(check)cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
  }
  return 0;
}