#include<stdio.h>
#include<queue>
using namespace std;
char a[10][10];
int v[10][10];
int dirx[4]={1,0,-1,0};
int diry[4]={0,1,0,-1};
int flag=0;
struct point{
int x;
int y;
int step;
};
queue<point> r;//申请队列
int main(){
//得出一个地图
int i,j;
for(i=0;i<10;i++){
for(j=0;j<10;j++){
v[i][j]=0;
scanf("%c",&a[i][j]);
if(a[i][j]=='\n')
j=j-1;
}
}
//BFS
struct point start;
start.x=0; start.y=0; start.step=0;
r.push(start);
v[start.x][start.y]=1;
while(!r.empty()){
int x=r.front().x;
int y=r.front().y;
if(x==9&&y==9){
flag=1;
break;
}
int m;
struct point temp;//设置一个暂时的储存区
for(m=0;m<4;m++){
int tx=x+dirx[m]; int ty=y+diry[m];
if(a[tx][ty]=='.'&&v[tx][ty]==0){
temp.x=tx; temp.y=ty;
temp.step=r.front().step+1;
r.push(temp);
v[tx][ty]=1;
}
}
r.pop();//要出队队首
}
if(flag==1)printf("Yes\n");
else printf("No\n");
return 0;
}