#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
cin >> N;
string SS, SK, SH;
cin >> SS >> SK >> SH;
string ans(N, 'a');
int scoreS = 0, scoreK = 0, scoreH = 0;
// 처음엔 숭돌이 답 위주로
for (int i = 0; i < N; i++) {
ans[i] = SS[i];
}
auto recompute = [&]() {
scoreS = scoreK = scoreH = 0;
for (int i = 0; i < N; i++) {
if (ans[i] == SS[i]) scoreS++;
if (ans[i] == SK[i]) scoreK++;
if (ans[i] == SH[i]) scoreH++;
}
};
recompute();
// 안 되면 조정
for (int i = 0; i < N; i++) {
if (scoreS > scoreK && scoreK > scoreH) break;
// 이 자리를 바꿔서 조정 시도
char best = ans[i];
int bestS = scoreS, bestK = scoreK, bestH = scoreH;
for (char c : {SS[i], SK[i], SH[i], 'a'}) {
if (c == ans[i]) continue;
int oldS = (ans[i] == SS[i]);
int oldK = (ans[i] == SK[i]);
int oldH = (ans[i] == SH[i]);
int newS = scoreS - oldS + (c == SS[i]);
int newK = scoreK - oldK + (c == SK[i]);
int newH = scoreH - oldH + (c == SH[i]);
if (newS > newK && newK > newH) {
best = c;
bestS = newS; bestK = newK; bestH = newH;
break;
}
}
if (best != ans[i]) {
ans[i] = best;
scoreS = bestS; scoreK = bestK; scoreH = bestH;
}
}
if (scoreS > scoreK && scoreK > scoreH) {
cout << ans << "\n";
} else {
cout << -1 << "\n";
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50IE47CiAgICBjaW4gPj4gTjsKICAgIHN0cmluZyBTUywgU0ssIFNIOwogICAgY2luID4+IFNTID4+IFNLID4+IFNIOwoKICAgIHN0cmluZyBhbnMoTiwgJ2EnKTsKICAgIGludCBzY29yZVMgPSAwLCBzY29yZUsgPSAwLCBzY29yZUggPSAwOwoKICAgIC8vIOyymOydjOyXlCDsiK3rj4zsnbQg64u1IOychOyjvOuhnAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICBhbnNbaV0gPSBTU1tpXTsKICAgIH0KCiAgICBhdXRvIHJlY29tcHV0ZSA9IFsmXSgpIHsKICAgICAgICBzY29yZVMgPSBzY29yZUsgPSBzY29yZUggPSAwOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKSB7CiAgICAgICAgICAgIGlmIChhbnNbaV0gPT0gU1NbaV0pIHNjb3JlUysrOwogICAgICAgICAgICBpZiAoYW5zW2ldID09IFNLW2ldKSBzY29yZUsrKzsKICAgICAgICAgICAgaWYgKGFuc1tpXSA9PSBTSFtpXSkgc2NvcmVIKys7CiAgICAgICAgfQogICAgfTsKCiAgICByZWNvbXB1dGUoKTsKCiAgICAvLyDslYgg65CY66m0IOyhsOyglQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICBpZiAoc2NvcmVTID4gc2NvcmVLICYmIHNjb3JlSyA+IHNjb3JlSCkgYnJlYWs7CiAgICAgICAgLy8g7J20IOyekOumrOulvCDrsJTqv5TshJwg7KGw7KCVIOyLnOuPhAogICAgICAgIGNoYXIgYmVzdCA9IGFuc1tpXTsKICAgICAgICBpbnQgYmVzdFMgPSBzY29yZVMsIGJlc3RLID0gc2NvcmVLLCBiZXN0SCA9IHNjb3JlSDsKICAgICAgICBmb3IgKGNoYXIgYyA6IHtTU1tpXSwgU0tbaV0sIFNIW2ldLCAnYSd9KSB7CiAgICAgICAgICAgIGlmIChjID09IGFuc1tpXSkgY29udGludWU7CiAgICAgICAgICAgIGludCBvbGRTID0gKGFuc1tpXSA9PSBTU1tpXSk7CiAgICAgICAgICAgIGludCBvbGRLID0gKGFuc1tpXSA9PSBTS1tpXSk7CiAgICAgICAgICAgIGludCBvbGRIID0gKGFuc1tpXSA9PSBTSFtpXSk7CiAgICAgICAgICAgIGludCBuZXdTID0gc2NvcmVTIC0gb2xkUyArIChjID09IFNTW2ldKTsKICAgICAgICAgICAgaW50IG5ld0sgPSBzY29yZUsgLSBvbGRLICsgKGMgPT0gU0tbaV0pOwogICAgICAgICAgICBpbnQgbmV3SCA9IHNjb3JlSCAtIG9sZEggKyAoYyA9PSBTSFtpXSk7CiAgICAgICAgICAgIGlmIChuZXdTID4gbmV3SyAmJiBuZXdLID4gbmV3SCkgewogICAgICAgICAgICAgICAgYmVzdCA9IGM7CiAgICAgICAgICAgICAgICBiZXN0UyA9IG5ld1M7IGJlc3RLID0gbmV3SzsgYmVzdEggPSBuZXdIOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGJlc3QgIT0gYW5zW2ldKSB7CiAgICAgICAgICAgIGFuc1tpXSA9IGJlc3Q7CiAgICAgICAgICAgIHNjb3JlUyA9IGJlc3RTOyBzY29yZUsgPSBiZXN0Szsgc2NvcmVIID0gYmVzdEg7CiAgICAgICAgfQogICAgfQoKICAgIGlmIChzY29yZVMgPiBzY29yZUsgJiYgc2NvcmVLID4gc2NvcmVIKSB7CiAgICAgICAgY291dCA8PCBhbnMgPDwgIlxuIjsKICAgIH0gZWxzZSB7CiAgICAgICAgY291dCA8PCAtMSA8PCAiXG4iOwogICAgfQp9