/*
* 1181_2.cpp
*
* Created on: 2013年8月22日
* Author: Administrator
*/
#include <iostream>
using namespace std;
const int maxn = 10000;
char st[maxn],et[maxn];
bool visited[maxn];
int t;
bool ok;
void dfs(int x){
if(ok){
return ;
}
if(et[x] == 'm'){
ok = true;
return ;
}
int i;
for( i = 0 ; i < t ; ++i){
if(visited[i] || st[i] != et[x]){
continue;
}
visited[i] = true;
dfs(i);
visited[i] = false;
}
}
int main(){
string s;
while(cin >> s){
t = 0;
while(s[0] !='0'){
st[t] = s[0];
et[t++] = s[s.size() - 1];
cin >> s;
}
memset(visited,0,sizeof(visited));
ok = false;
int i;
for( i = 0 ; i < t ; ++i){
if(st[i] !='b'){
continue;
}
visited[i] = true;
dfs(i);
}
printf("%s\n",ok?"Yes.":"No.");
}
}