#include<bits/stdc++.h>
using namespace std;

/*??????????????£?????????*/
string field[8];

/*????????¢??°*/
/*player=0 Mami / player=1 Majo*/
int Evaluation(int x,int y,int player){
  int n=0;
  int temp;
  if(player == 0){
    
    /*???*/
    temp=0;
    for(int i=x+1 ; i < 8 ; i++){
      if(field[y][i] == 'x'){
	temp++;
      }else if(field[y][i] == 'o'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*???*/
    temp=0;
    for(int i=x-1 ; i >= 0 ; i--){
      if(field[y][i] == 'x'){
	temp++;
      }else if(field[y][i] == 'o'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*???*/
    temp=0;
    for(int i=y-1 ; i >=0 ; i--){
      if(field[i][x] == 'x'){
	temp++;
      }else if(field[i][x] == 'o'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*???*/
    temp=0;
    for(int i=y+1 ; i < 8 ; i++){
      if(field[i][x] == 'x'){
	temp++;
      }else if(field[i][x] == 'o'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x+i < 8 && y-i >=0 ;i++){
      if(field[y-i][x+i] == 'x'){
	temp++;
      }else if(field[y-i][x+i] == 'o'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x+i < 8 && y+i < 8 ; i++){
      if(field[y+i][x+i] == 'x'){
	temp++;
      }else if(field[y+i][x+i] == 'o'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x-i >= 0 && y-i >=0 ;i++){
      if(field[y-i][x-i] == 'x'){
	temp++;
      }else if(field[y-i][x-i] == 'o'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x-i >= 0 && y+i < 8 ;i++){
      if(field[y+i][x-i] == 'x'){
	temp++;
      }else if(field[y+i][x-i] == 'o'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    
  }else{
    
    /*???*/
    temp=0;
    for(int i=x+1 ; i < 8 ; i++){
      if(field[y][i] == 'o'){
	temp++;
      }else if(field[y][i] == 'x'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*???*/
    temp=0;
    for(int i=x-1 ; i >= 0 ; i--){
      if(field[y][i] == 'o'){
	temp++;
      }else if(field[y][i] == 'x'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*???*/
    temp=0;
    for(int i=y-1 ; i >=0 ; i--){
      if(field[i][x] == 'o'){
	temp++;
      }else if(field[i][x] == 'x'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*???*/
    temp=0;
    for(int i=y+1 ; i < 8 ; i++){
      if(field[i][x] == 'o'){
	temp++;
      }else if(field[i][x] == 'x'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x+i < 8 && y-i >=0 ;i++){
      if(field[y-i][x+i] == 'o'){
	temp++;
      }else if(field[y-i][x+i] == 'x'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x+i < 8 && y+i < 8 ; i++){
      if(field[y+i][x+i] == 'o'){
	temp++;
      }else if(field[y+i][x+i] == 'x'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x-i >= 0 && y-i >=0 ;i++){
      if(field[y-i][x-i] == 'o'){
	temp++;
      }else if(field[y-i][x-i] == 'x'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x-i >= 0 && y+i < 8 ;i++){
      if(field[y+i][x-i] == 'o'){
	temp++;
      }else if(field[y+i][x-i] == 'x'){
	n+=temp;
	break;
      }else{
	break;
      }
    }
    
  }
  
  return n;
}

/*?????¢??????*/
/*player=0 Mami / player=1 Majo*/
void Reflection(int x,int y,int player){
  int temp;
  if(player == 0){
    
    /*???*/
    temp=0;
    for(int i=x+1 ; i < 8 ; i++){
      if(field[y][i] == 'x'){
	temp++;
      }else if(field[y][i] == 'o'){
	for(int j=1 ; j <= temp ; j++){
	  field[y][x+j] = 'o';
	}
	break;
      }else{
	break;
      }
    }
    /*???*/
    temp=0;
    for(int i=x-1 ; i >= 0 ; i--){
      if(field[y][i] == 'x'){
	temp++;
      }else if(field[y][i] == 'o'){
	for(int j=1 ; j <= temp ; j++){
	  field[y][x-j] = 'o';
	}
	break;
      }else{
	break;
      }
    }
    /*???*/
    temp=0;
    for(int i=y-1 ; i >=0 ; i--){
      if(field[i][x] == 'x'){
	temp++;
      }else if(field[i][x] == 'o'){
	for(int j=1 ; j <= temp ; j++){
	  field[y-j][x] = 'o';
	}
	break;
      }else{
	break;
      }
    }
    /*???*/
    temp=0;
    for(int i=y+1 ; i < 8 ; i++){
      if(field[i][x] == 'x'){
	temp++;
      }else if(field[i][x] == 'o'){
	for(int j=1 ; j <= temp ; j++){
	  field[y+j][x] = 'o';
	}
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x+i < 8 && y-i >=0 ;i++){
      if(field[y-i][x+i] == 'x'){
	temp++;
      }else if(field[y-i][x+i] == 'o'){
	for(int j=1 ; j <= temp ; j++){
	  field[y-j][x+j] = 'o';
	}
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x+i < 8 && y+i < 8 ; i++){
      if(field[y+i][x+i] == 'x'){
	temp++;
      }else if(field[y+i][x+i] == 'o'){
	for(int j=1 ; j <= temp ; j++){
	  field[y+j][x+j] = 'o';
	}
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x-i >= 0 && y-i >=0 ;i++){
      if(field[y-i][x-i] == 'x'){
	temp++;
      }else if(field[y-i][x-i] == 'o'){
	for(int j=1 ; j <= temp ; j++){
	  field[y-j][x-j] = 'o';
	}
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x-i >= 0 && y+i < 8 ;i++){
      if(field[y+i][x-i] == 'x'){
	temp++;
      }else if(field[y+i][x-i] == 'o'){
	for(int j=1 ; j <= temp ; j++){
	  field[y+j][x-j] = 'o';
	}
	break;
      }else{
	break;
      }
    }
    
  }else{
    
    /*???*/
    temp=0;
    for(int i=x+1 ; i < 8 ; i++){
      if(field[y][i] == 'o'){
	temp++;
      }else if(field[y][i] == 'x'){
	for(int j=1 ; j <= temp ; j++){
	  field[y][x+j] = 'x';
	}
	break;
      }else{
	break;
      }
    }
    /*???*/
    temp=0;
    for(int i=x-1 ; i >= 0 ; i--){
      if(field[y][i] == 'o'){
	temp++;
      }else if(field[y][i] == 'x'){
	for(int j=1 ; j <= temp ; j++){
	  field[y][x-j] = 'x';
	}
	break;
      }else{
	break;
      }
    }
    /*???*/
    temp=0;
    for(int i=y-1 ; i >=0 ; i--){
      if(field[i][x] == 'o'){
	temp++;
      }else if(field[i][x] == 'x'){
	for(int j=1 ; j <= temp ; j++){
	  field[y-j][x] = 'x';
	}
	break;
      }else{
	break;
      }
    }
    /*???*/
    temp=0;
    for(int i=y+1 ; i < 8 ; i++){
      if(field[i][x] == 'o'){
	temp++;
      }else if(field[i][x] == 'x'){
	for(int j=1 ; j <= temp ; j++){
	  field[y+j][x] = 'x';
	}
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x+i < 8 && y-i >=0 ;i++){
      if(field[y-i][x+i] == 'o'){
	temp++;
      }else if(field[y-i][x+i] == 'x'){
	for(int j=1 ; j <= temp ; j++){
	  field[y-j][x+j] = 'x';
	}
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x+i < 8 && y+i < 8 ; i++){
      if(field[y+i][x+i] == 'o'){
	temp++;
      }else if(field[y+i][x+i] == 'x'){
	for(int j=1 ; j <= temp ; j++){
	  field[y+j][x+j] = 'x';
	}
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x-i >= 0 && y-i >=0 ;i++){
      if(field[y-i][x-i] == 'o'){
	temp++;
      }else if(field[y-i][x-i] == 'x'){
	for(int j=1 ; j <= temp ; j++){
	  field[y-j][x-j] = 'x';
	}
	break;
      }else{
	break;
      }
    }
    /*??????*/
    temp=0;
    for(int i=1 ; x-i >= 0 && y+i < 8 ;i++){
      if(field[y+i][x-i] == 'o'){
	temp++;
      }else if(field[y+i][x-i] == 'x'){
	for(int j=1 ; j <= temp ; j++){
	  field[y+j][x-j] = 'x';
	}
	break;
      }else{
	break;
      }
    }
    
  }
}
/*?????¢?????¨???????????£????????????true*/

bool flag1,flag2;

bool Mami(){
  bool flag = true;
  int n=0,x,y;
  for(int i=0 ; i < 8 ; i++){
    for(int j=0 ; j < 8 ; j++){
      if(field[i][j] == '.'){
	int temp = Evaluation(j,i,0);
	if(temp > n){
	  n = temp;
	  x = j;
	  y = i;
 	}
	flag = false;
      }
    }
  }
  if(n > 0){
    field[y][x]='o';
    Reflection(x,y,0);
    flag1 = false;
  }
  return flag;
}

bool Majo(){
  bool flag = true;
  int n=0,x,y;
  for(int i=7 ; i >= 0 ; i--){
    for(int j=7 ; j >= 0 ; j--){
      if(field[i][j] == '.'){
	int temp = Evaluation(j,i,1);
	if(temp > n){
	  n = temp;
	  x = j;
	  y = i;
 	}
	flag = false;
      }
    }
  }
  if(n > 0){
    field[y][x]='x';
    Reflection(x,y,1);
    flag2 = false;
  }
  return flag;
}

int main(){ 
  
  for(int i=0 ; i < 8 ; i++)cin >>field[i];
  
  /*o??????????????????*/
  int player = 0; // 0:o 1:x
  int cnt=0;
  /*?????????????????´??????????????????,????????????????????????????????????????????§*/
  while(1){
    flag1=true;
    flag2=true;
    if(player%2 == 0){
      if(Mami())break;
    }else{
      if(Majo())break;
    }
    if(flag1 == true && flag2 == true)cnt++;
    if(flag1 == false || flag2 == false)cnt=0;
    if(cnt > 1)break;
    // if(player==17)break;
    player++;
  }
  
  /*?????¢??????*/
  for(int i=0 ; i < 8 ; i++)cout <<field[i]<<endl;
  
  return 0;
}

Measured memory_bytes: 1188