#include <bits/stdc++.h>
void printResult() {}
int main(int argc, const char* argv[]) {
  std::ios::sync_with_stdio(false);
  int rows;
  bool possible = false;
  scanf("%d\n", &rows);
  std::shared_ptr<std::vector<char*>> bus =
      std::make_shared<std::vector<char*>>();
  if (rows > 0) {
    for (auto i = 0; i < rows; i++) {
      char* row = new char[4];
      scanf("%c%c|%c%c\n", &row[0], &row[1], &row[2], &row[3]);
      bus->push_back(row);
    }
    for (auto row : *bus) {
      if (row[0] == row[1] && row[0] == 'O') {
        possible = true;
        row[0] = '+';
        row[1] = '+';
        break;
      } else if (row[2] == row[3] && row[2] == 'O') {
        possible = true;
        row[2] = '+';
        row[3] = '+';
        break;
      }
    }
    if (possible == true) {
      printf("YES\n");
      for (auto row : *bus) {
        printf("%c%c|%c%c\n", row[0], row[1], row[2], row[3]);
      }
    } else {
      printf("NO\n");
    }
  }
  return 0;
}
