#include<bits/stdc++.h>
using namespace std;
int l=0,flag=0;
int vis[10000];
struct zifu{
char s,e;
}c[10000];
void dfs(char ch){
int i;
if(ch=='m')
flag=1;
if(flag)
return;
for(i=0;i<l;i++){
if(vis[i])
continue;
if(c[i].s==ch){
vis[i]=1;
dfs(c[i].e);
vis[i]=0;
}
}
}
int main(){
char s[100];
int i;
while(scanf("%s",s)!=EOF){
if(!strcmp(s,"0"))//当输入非零时,继续
continue;
l=0;
c[l].s=s[0];
c[l].e=s[strlen(s)-1];
l++;
while(scanf("%s",s)&&strcmp(s,"0")){
c[l].s=s[0];
c[l].e=s[strlen(s)-1];
l++;
}
flag=0;
for(i=0;i<l;i++){
if(c[i].s=='b'){
memset(vis,0,sizeof(vis));
vis[i]=1;
dfs(c[i].s);
}
if(flag)break;
}
if(flag)printf("Yes.\n");
else printf("No.\n");
}
return 0;
}
10-27