79eb041315abece7d39fd1fe4867ac0254f30797558d2a8d937163df695bd339
// https://szkopul.edu.pl/problemset/problem/QDgpN1ie7bbAvifQ9j2FHr7C/site/?key=statement
#include <bits/stdc++.h>
// #define GARY_DBG
#define GARY_LIB
constexpr int sizik = 5;
#define ar std::array
typedef std::vector<std::vector<int>> _kra;
std::string s[sizik];
std::string ans[sizik];
char b(char x, char y) {
if (x == '?') return y;
return x;
}
void solve() {
for (int i = 0; i < sizik; i++) {
std::cin >> s[i];
}
for (int i = 0; i < sizik; i++) {
ans[i].resize(sizik);
}
bool isGood = true;
for (int i = 0; i < sizik; i++) {
for (int j = 0; j < sizik; j++) {
if (s[i][j] == '?' || s[j][i] == '?') {
if (s[j][i] == '?' && s[i][j] == '?') {
ans[i][j] = ans[j][i] = 'A';
} else {
ans[j][i] = ans[i][j] = b(s[j][i], s[i][j]);
}
} else {
if (s[i][j] != s[j][i]) {
isGood = false;
} else {
ans[i][j] = ans[j][i] = s[i][j];
}
}
}
}
if (isGood) {
// std::cout << "TAK\n";
for (int i = 0; i < sizik; i++) {
std::cout << ans[i] << '\n';
}
} else {
std::cout << "NIE\n";
}
}
int32_t main() {
#ifndef GARY_DBG
std::ios_base::sync_with_stdio(0);
std::cin.tie(0);
std::cout.tie(0);
#endif
int t = 1;
// std::cin >> t;
for (; t > 0; t--) {
solve();
}
return 0;
}