#include<iostream>
#include<string>
using namespace std;
int main() {
string s1,s2;
while (cin >> s1 >> s2) {
if (s1.size() < s2.size()) swap(s1, s2); //让s1成为大串
int l1 = s1.size(), l2 = s2.size(), d = l1 - l2;
string s = s1; int tag = 0; //tag 用于标记前面位次是否超过26
for (int i = l2-1; i >=0; i--) { //处理相加位次
s[d + i] = (s1[d + i] - 'A' + s2[i] - 'A'+tag) % 26 + 'A';
if (s1[d + i] - 'A' + s2[i] - 'A' + tag >= 26)tag = 1;
else tag = 0;
}
for (int i = d-1; i>= 0; i--) { //处理s1多余位次
s[i] = (s1[i] - 'A'+tag) % 26 + 'A';
if (s1[i] - 'A' + tag >= 26)tag = 1;
else tag = 0;
}
if (tag == 1)s.insert(0, "B"); //若0位超过了26,必须在0前面插入"B"
while(s[0]=='A') { //最终结果可能前面会有A,A为0不需要输出
s = s.substr(1);
}
cout << s << endl;
}
return 0;
}
跨考的研0学生,才开始刷oj,如有错误请指正嘻嘻