]=0,y[1][0]=1; x[1][1]=1,y[1][1]=1; x[1][2]=2,y[1][2]=1; x[1][3]=3,y[1][3]=1;
? ? ? ? ? ? ? ? x[2][0]=1,y[2][0]=0; x[2][1]=1,y[2][1]=-1; x[2][2]=1,y[2][2]=-2; x[2][3]=1,y[2][3]=-3;
? ? ? ? ? ? ? ? x[3][0]=1,y[3][0]=0; x[3][1]=2,y[3][1]=0; x[3][2]=3,y[3][2]=0; x[3][3]=3,y[3][3]=1;
? ? ? ? ? ? ? ? x[4][0]=1,y[4][0]=0; x[4][1]=2,y[4][1]=0; x[4][2]=3,y[4][2]=0; x[4][3]=3,y[4][3]=-1;
? ? ? ? ? ? ? ? x[5][0]=1,y[5][0]=0; x[5][1]=1,y[5][1]=1; x[5][2]=1,y[5][2]=2; x[5][3]=1,y[5][3]=3;
? ? ? ? ? ? ? ? x[6][0]=1,y[6][0]=0; x[6][1]=2,y[6][1]=0; x[6][2]=3,y[6][2]=0; x[6][3]=0,y[6][3]=1;
? ? ? ? ? ? ? ? x[7][0]=0,y[7][0]=1; x[7][1]=0,y[7][1]=2; x[7][2]=0,y[7][2]=3; x[7][3]=1,y[7][3]=3;
? ? ? ? ? ? ? ? break;
? ? ? ? }
? ? }
}opt[N];
char a[10][10];
bool used[N];
?
bool Null(int x,int y,Ret &op,int l){
? ? rep(i,op.tot)
? ? ? if(x+op.x[l][i]<1||y+op.y[l][i]<1||a[x+op.x[l][i]][y+op.y[l][i]]!='.') return false;
? ? return true;
}
?
void put(int x,int y,Ret &op,int l,char c){
? ? rep(i,op.tot)
? ? ? a[x+op.x[l][i]][y+op.y[l][i]]=c;
}
?
bool DFS(int i,int j){
? ? if(i
? ? if(i>10){
? ? ? ? Rep(k,10) puts(a[k]+1);
? ? ? ? return true;
? ? }
? ? if(a[i][j]!='.') return DFS(i,j+1);
? ? for(int k='A';k<='L';k++)
? ? ? ? if(!used[k]){
? ? ? ? ? ? used[k]=true;a[i][j]=k;
? ? ? ? ? ? rep(l,opt[k].cnt)
? ? ? ? ? ? ? if(Null(i,j,opt[k],l)){
? ? ? ? ? ? ? ? ? put(i,j,opt[k],l,k);
? ? ? ? ? ? ? ? ? if(DFS(i,j+1)) return true;
? ? ? ? ? ? ? ? ? put(i,j,opt[k],l,'.');
? ? ? ? ? ? ? }
? ? ? ? ? ? used[k]=false;a[i][j]='.';
? ? ? ? }?
? ? return false;
}
?
bool valid(){
? ? Rep(i,10)
? ? ? ? Rep(j,i)
? ? ? ? ? ? if(a[i][j]=='.'&&a[i][j+1]=='.'&&a[i][j-1]!='.'&&a[i][j+2]!='.'&&a[i-1][j]!='.'&&a[i-1][j+1]!='.'&&a[i+1][j]!='.'&&a[i+1][j+1]!='.'
? ? ? ? ? ? ?||a[i][j]=='.'&&a[i+1][j]=='.'&&a[i-1][j]!='.'&&a[i+2][j]!='.'&&a[i][j-1]!='.'&&a[i+1][j-1]!='.'&&a[i][j+1]!='.'&&a[i+1][j+1]!='.') return 0;
? ? return 1;
}
?
int main(){
? ? Rep(i,10) scanf("%s",a[i]+1);
? ? Rep(i,10)
? ? ? Rep(j,i)
? ? ? ? if(a[i][j]!='.') used[a[i][j]]=true;
? ? for(int i='A';i<='L';i++) opt[i]=Ret(i); ? ?
? ? if(!valid()||!DFS(1,1)) puts("No solution");
? ? return 0;
}