#include<bits/stdc++.h>
using namespace std;
int king_x[8]= {-1,0,1,0,-1,-1,1,1};
int king_y[8]= {0,1,0,-1,-1,1,1,-1};
int knight_x[8]= {2,1,-1,-2,-2,-1,1,2};
int knight_y[8]= {1,2,2,1,-1,-2,-2,-1};
int main()
{
int i,j,k,l,u,v,tc=0;
char grid[10][10];
while(1)
{
tc++;
for(i=0; i<8; i++)
{
scanf("%s",grid[i]);
}
int is_blank = 0;
for(i=0; i<8; i++)
{
for(j=0; j<8; j++)
{
if(grid[i][j]=='.')
is_blank++;
}
}
if(is_blank==64)
break;
bool tag = false;
for(i=0; i<8; i++)
{
for(j=0; j<8; j++)
{
tag = false;
if(grid[i][j]=='p')
{
if(grid[i+1][j-1]=='K'||grid[i+1][j+1]=='K')
{
printf("Game #%d: white king is in check.\n",tc);
tag = true;
break;
}
}
else if(grid[i][j]=='P')
{
if(grid[i-1][j-1]=='k'||grid[i-1][j+1]=='k')
{
printf("Game #%d: black king is in check.\n",tc);
tag = true;
break;
}
}
if(grid[i][j]=='r'||grid[i][j]=='q')
{
tag = false;
for(k=j+1; k<8; k++)
{
if(grid[i][k]=='.')
continue;
if(grid[i][k]!='K')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(!tag)
for(k=j-1; k>=0; k--)
{
if(grid[i][k]=='.')
continue;
if(grid[i][k]!='K')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(!tag)
for(k=i+1; k<8; k++)
{
if(grid[k][j]=='.')
continue;
if(grid[k][j]!='K')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(!tag)
for(k=i-1; k>=0; k--)
{
if(grid[k][j]=='.')
continue;
if(grid[k][j]!='K')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(tag)
{
printf("Game #%d: white king is in check.\n",tc);
break;
}
}
else if(grid[i][j]=='R'||grid[i][j]=='Q')
{
tag = false;
for(k=j+1; k<8; k++)
{
if(grid[i][k]=='.')
continue;
if(grid[i][k]!='k')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(!tag)
for(k=j-1; k>=0; k--)
{
if(grid[i][k]=='.')
continue;
if(grid[i][k]!='k')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(!tag)
for(k=i+1; k<8; k++)
{
if(grid[k][j]=='.')
continue;
if(grid[k][j]!='k')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(!tag)
for(k=i-1; k>=0; k--)
{
if(grid[k][j]=='.')
continue;
if(grid[k][j]!='k')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(tag)
{
printf("Game #%d: black king is in check.\n",tc);
break;
}
}
if(grid[i][j]=='b'||grid[i][j]=='q')
{
tag = false;
for(k=i+1,l=j+1; k<8; k++,l++)
{
if(grid[k][l]=='.')
continue;
if(grid[k][l]!='K')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(!tag)
for(k=i-1,l=j-1; k>=0; k--,l--)
{
if(grid[k][l]=='.')
continue;
if(grid[k][l]!='K')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(!tag)
for(k=i+1,l=j-1; k<8; k++,l--)
{
if(grid[k][l]=='.')
continue;
if(grid[k][l]!='K')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(!tag)
for(k=i-1,l=j+1; k>=0; k--,l++)
{
if(grid[k][l]=='.')
continue;
if(grid[k][l]!='K')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(tag)
{
printf("Game #%d: white king is in check.\n",tc);
break;
}
}
else if(grid[i][j]=='B'||grid[i][j]=='Q')
{
tag = false;
for(k=i+1,l=j+1; k<8; k++,l++)
{
if(grid[k][l]=='.')
continue;
if(grid[k][l]!='k')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(!tag)
for(k=i-1,l=j-1; k>=0; k--,l--)
{
if(grid[k][l]=='.')
continue;
if(grid[k][l]!='k')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(!tag)
for(k=i+1,l=j-1; k<8; k++,l--)
{
if(grid[k][l]=='.')
continue;
if(grid[k][l]!='k')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(!tag)
for(k=i-1,l=j+1; k>=0; k--,l++)
{
if(grid[k][l]=='.')
continue;
if(grid[k][l]!='k')
{
tag = false;
break;
}
else
{
tag = true;
break;
}
}
if(tag)
{
printf("Game #%d: black king is in check.\n",tc);
break;
}
}
if(grid[i][j]=='n')
{
tag = false;
for(k=0; k<8; k++)
{
u = i+knight_x[k];
v = j+knight_y[k];
if(grid[u][v]=='K')
{
tag = true;
printf("Game #%d: white king is in check.\n",tc);
break;
}
}
}
else if(grid[i][j]=='N')
{
tag = false;
for(k=0; k<8; k++)
{
u = i+knight_x[k];
v = j+knight_y[k];
if(grid[u][v]=='k')
{
tag = true;
printf("Game #%d: black king is in check.\n",tc);
break;
}
}
}
if(tag)
break;
}
if(tag)
break;
}
if(!tag)
printf("Game #%d: no king is in check.\n",tc);
}
return 0;
}