/*
由于字符串a和b的长度可达200,故不能将其一次性转换为数字进行求和计算,只能从个位开始一位一位地将其转换为数字进行求和计算,商作为进位提供给下一位的求和计算,余数作为该位的计算结果,转换为字母保存。
特别注意:需要将首位零去掉。
*/
#include <bits/stdc++.h>
using namespace std;
int charToNum(char c) { // 将字母转换为数字的函数
return c - 'A';
}
char numToChar(int num) { // 将数字转换为字母的函数
return num + 'A';
}
string fun(string s1, string s2) { // 求和计算的函数
string result; // result表示计算结果
int x = 0; // x表示进位
int i = s1.size() - 1; // 从s1最后一位开始
int j = s2.size() - 1; // 从s2最后一位开始
while (i >= 0 || j >= 0 || x > 0) {
int n1 = (i >= 0) ? charToNum(s1[i]) : 0; // 三目运算
int n2 = (j >= 0) ? charToNum(s2[j]) : 0; // 三目运算
int sum = n1 + n2 + x; // 每一位求和
x = sum / 20; // sum除以20的商作为进位
int r = sum % 20; // r表示sum除以20的余数
result = numToChar(r) + result; // 余数r转换为字母保存
i--; // s1向前移动一位
j--; // s2向前移动一位
}
return result; // 返回计算结果result
}
int main() {
string s1, s2;
cin >> s1 >> s2;
string s = fun(s1, s2);
while (s[0] == 'A') s.erase(0, 1); // 去掉首位零
cout << s << endl;
return 0;
}