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

//?????????
//????£?????????????
// o:= ?????????x:= ??????
// {'o', 'x', '.'} = {0, 1, 2}
//????£??????????????????§10x10??????
// o:= ?????????????????§?????????
// x:= ?????????????????§?????????


int di[8] = {0, -1, -1, -1, 0, 1, 1, 1};
int dj[8] = {1, 1, 0, -1, -1, -1, 0, 1};
int h;

int ex(int i, int j, int p, int o, vector<vector<int> > osero){ //?????£?????????????????°?????????

    if(osero[i][j] != 2) return 0;
    int ans = 0;
    for(int k = 0; k < 8; k++){
        int ni = i + di[k];
        int nj = j + dj[k];
        int temp = 0;
        while(1){
            
            if(osero[ni][nj] == p){
                ans += temp;
                break;
            }else if(osero[ni][nj] == 2){
                break;
            }else{
                temp++;
            }

            ni += di[k];
            nj += dj[k];
        }
    }
    return ans;
}

bool play(int i, int j, int p, int o, vector<vector<int> >& osero){ //??????????????£??°?????????
    
    int ni = i + di[h];
    int nj = j + dj[h];

    //????????????????????????????????§0?????????
    if(osero[ni][nj] == 2){
        return false;
    }
        
    //?????????????????????????????????????????§1?????????
    if(osero[ni][nj] == p){
        return true;
    }

    //???????????????????¬??????????
    if(osero[ni][nj] == o){
        bool flag = play(ni, nj, p, o, osero);
        if(flag){ //1?????°??£???????????????????????¢
            osero[ni][nj] = p;
            return true;
        }
    }
    

    return false;
}


int main(){
    
    //??\???
    vector<vector<int> > osero(10, vector<int> (10, 2));
    for(int i = 1; i <= 8; i++){
        for(int j = 1; j <= 8; j++){
            char input; cin >> input;
            if(input == 'o') osero[i][j] = 0;
            else if(input == 'x') osero[i][j] = 1;
        }
    }

    bool flag = true;

    while(flag){

        flag = false;
        //??????????????????
        int MAX = 0;
        int MAX_i = 0, MAX_j = 0;
        for(int i = 1; i <= 8; i++){
            for(int j = 1; j <= 8; j++){
                int temp = ex(i, j, 0, 1, osero);
                if(temp > MAX){
                    MAX = temp;
                    MAX_i = i;
                    MAX_j = j;
                    flag = true;
                }
            }
        }

        if(MAX > 0) for(h = 0; h < 8; h++){
            play(MAX_i, MAX_j, 0, 1, osero);
            osero[MAX_i][MAX_j] = 0;
        }

        //????\?????????????
        MAX = 0;
        for(int i = 8; i >= 1; i--){
            for(int j = 8; j >= 1; j--){
                int temp = ex(i, j, 1, 0, osero);
                if(temp > MAX){
                    MAX = temp;
                    MAX_i = i;
                    MAX_j = j;
                    flag = true;
                }
            }
        }


        if(MAX > 0) for(h = 0; h < 8; h++){
            play(MAX_i, MAX_j, 1, 0, osero);
            osero[MAX_i][MAX_j] = 1;
        }

    }

    //??????
    for(int i = 1; i <= 8; i++){
        for(int j = 1; j <= 8; j++){
            if(osero[i][j] == 0) cout << 'o';
            if(osero[i][j] == 1) cout << 'x';
            if(osero[i][j] == 2) cout << '.';
        }
        cout << endl;
    }   
    return 0;
}

Measured memory_bytes: 3168