#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;
// 1차: 숭돌이 답 위주로 채움
for (int i = 0; i < N; i++) {
if (SS[i] == SK[i] && SK[i] == SH[i]) {
// 모두 같으면 틀리게
char c = 'a';
if (c == SS[i]) c = 'b';
ans[i] = c;
} else {
ans[i] = SS[i];
}
}
// 점수 계산
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++;
}
// 조건 만족 못 하면 고쳐야 함
if (!(scoreS > scoreK && scoreK > scoreH)) {
bool fixed = false;
for (int i = 0; i < N && !fixed; i++) {
// 다른 글자로 바꿔서 조정 시도
int oldS = (ans[i] == SS[i]);
int oldK = (ans[i] == SK[i]);
int oldH = (ans[i] == SH[i]);
for (char c = 'a'; c <= 'z'; c++) {
if (c == ans[i]) continue;
int nS = (c == SS[i]);
int nK = (c == SK[i]);
int nH = (c == SH[i]);
int newS = scoreS - oldS + nS;
int newK = scoreK - oldK + nK;
int newH = scoreH - oldH + nH;
if (newS > newK && newK > newH) {
ans[i] = c;
scoreS = newS;
scoreK = newK;
scoreH = newH;
fixed = true;
break;
}
}
}
}
if (scoreS > scoreK && scoreK > scoreH) {
cout << ans << "\n";
} else {
cout << -1 << "\n";
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50IE47CiAgICBjaW4gPj4gTjsKICAgIHN0cmluZyBTUywgU0ssIFNIOwogICAgY2luID4+IFNTID4+IFNLID4+IFNIOwoKICAgIHN0cmluZyBhbnMoTiwgJ2EnKTsKICAgIGludCBzY29yZVMgPSAwLCBzY29yZUsgPSAwLCBzY29yZUggPSAwOwoKICAgIC8vIDHssKg6IOyIreuPjOydtCDri7Ug7JyE7KO866GcIOyxhOybgAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICBpZiAoU1NbaV0gPT0gU0tbaV0gJiYgU0tbaV0gPT0gU0hbaV0pIHsKICAgICAgICAgICAgLy8g66qo65GQIOqwmeycvOuptCDti4DrpqzqsowKICAgICAgICAgICAgY2hhciBjID0gJ2EnOwogICAgICAgICAgICBpZiAoYyA9PSBTU1tpXSkgYyA9ICdiJzsKICAgICAgICAgICAgYW5zW2ldID0gYzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBhbnNbaV0gPSBTU1tpXTsKICAgICAgICB9CiAgICB9CgogICAgLy8g7KCQ7IiYIOqzhOyCsAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICBpZiAoYW5zW2ldID09IFNTW2ldKSBzY29yZVMrKzsKICAgICAgICBpZiAoYW5zW2ldID09IFNLW2ldKSBzY29yZUsrKzsKICAgICAgICBpZiAoYW5zW2ldID09IFNIW2ldKSBzY29yZUgrKzsKICAgIH0KCiAgICAvLyDsobDqsbQg66eM7KGxIOuquyDtlZjrqbQg6rOg7LOQ7JW8IO2VqAogICAgaWYgKCEoc2NvcmVTID4gc2NvcmVLICYmIHNjb3JlSyA+IHNjb3JlSCkpIHsKICAgICAgICBib29sIGZpeGVkID0gZmFsc2U7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOICYmICFmaXhlZDsgaSsrKSB7CiAgICAgICAgICAgIC8vIOuLpOuluCDquIDsnpDroZwg67CU6r+U7IScIOyhsOyglSDsi5zrj4QKICAgICAgICAgICAgaW50IG9sZFMgPSAoYW5zW2ldID09IFNTW2ldKTsKICAgICAgICAgICAgaW50IG9sZEsgPSAoYW5zW2ldID09IFNLW2ldKTsKICAgICAgICAgICAgaW50IG9sZEggPSAoYW5zW2ldID09IFNIW2ldKTsKCiAgICAgICAgICAgIGZvciAoY2hhciBjID0gJ2EnOyBjIDw9ICd6JzsgYysrKSB7CiAgICAgICAgICAgICAgICBpZiAoYyA9PSBhbnNbaV0pIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaW50IG5TID0gKGMgPT0gU1NbaV0pOwogICAgICAgICAgICAgICAgaW50IG5LID0gKGMgPT0gU0tbaV0pOwogICAgICAgICAgICAgICAgaW50IG5IID0gKGMgPT0gU0hbaV0pOwogICAgICAgICAgICAgICAgaW50IG5ld1MgPSBzY29yZVMgLSBvbGRTICsgblM7CiAgICAgICAgICAgICAgICBpbnQgbmV3SyA9IHNjb3JlSyAtIG9sZEsgKyBuSzsKICAgICAgICAgICAgICAgIGludCBuZXdIID0gc2NvcmVIIC0gb2xkSCArIG5IOwogICAgICAgICAgICAgICAgaWYgKG5ld1MgPiBuZXdLICYmIG5ld0sgPiBuZXdIKSB7CiAgICAgICAgICAgICAgICAgICAgYW5zW2ldID0gYzsKICAgICAgICAgICAgICAgICAgICBzY29yZVMgPSBuZXdTOwogICAgICAgICAgICAgICAgICAgIHNjb3JlSyA9IG5ld0s7CiAgICAgICAgICAgICAgICAgICAgc2NvcmVIID0gbmV3SDsKICAgICAgICAgICAgICAgICAgICBmaXhlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgaWYgKHNjb3JlUyA+IHNjb3JlSyAmJiBzY29yZUsgPiBzY29yZUgpIHsKICAgICAgICBjb3V0IDw8IGFucyA8PCAiXG4iOwogICAgfSBlbHNlIHsKICAgICAgICBjb3V0IDw8IC0xIDw8ICJcbiI7CiAgICB9Cn0=