#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
const int NCOLS = 34;
const int NROWS = 17;
char road[NROWS][NCOLS];
vector<string> split(const string &s, char delim) {
vector<string> result;
stringstream ss(s);
string item;
while (getline(ss, item, delim)) {
result.push_back(item);
}
return result;
}
vector<string> resvect;
void dealit(int type = 0){
for (int i = 0; i < resvect.size(); ++i) {
string s = resvect[i];
if (s.size() == 2){//说明是p
int x = 2*(s[1]-'0')-1;
int y = 4*(s[0]-'a')+2;
road[x][y] = 'P'+type*32;
} else{
int x = 2*(s[2]-'0')-1;
int y = 4*(s[1]-'a')+2;
char role = s[0];
road[x][y] = role+type*32;
}
}
}
int main(){
// freopen("../in.txt", "r", stdin);
int ix = 0;
for (int i = 1; i <=8 ; ++i) {
strcpy(road[ix++], "+---+---+---+---+---+---+---+---+");
if (i%2==0){
strcpy(road[ix++] , "|...|:::|...|:::|...|:::|...|:::|");
} else{
strcpy(road[ix++] , "|:::|...|:::|...|:::|...|:::|...|");
}
}
strcpy(road[ix] , "+---+---+---+---+---+---+---+---+");
//原始棋盘构建完成
// 处理白色
string temp;
cin>>temp;
cin>>temp;
resvect = split(temp, ',');
dealit(0);
cin>>temp;
cin>>temp;
resvect.clear();
resvect = split(temp, ',');
dealit(1);
for( ; ix>=0 ;ix--){
cout<<road[ix]<<endl;
}
}
08-05
08-05