import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char[] numChar1 = reverseArray(sc.nextLine().toCharArray());
char[] numChar2 = reverseArray(sc.nextLine().toCharArray());
int maxLength = Math.max(numChar1.length, numChar2.length);
char[] resultCharArr = new char[maxLength + 1];
boolean isCarryBit = false; // 记录是否进位
for (int i = 0; i < maxLength; i++) {
int result;
if (numChar1.length != numChar2.length && numChar1.length <= i) {
result = numChar2[i] - '0';
} else if (numChar1.length != numChar2.length && numChar2.length <= i) {
result = numChar1[i] - '0';
} else {
int num1 = numChar1[i] - '0';
int num2 = numChar2[i] - '0';
result = num1 + num2;
}
// 处理前一位的进位
if (isCarryBit) {
result += 1;
isCarryBit = false;
}
// 处理本位的进位
if (result >= 10) {
isCarryBit = true;
resultCharArr[i] = (char) (result % 10 + '0');
} else {
resultCharArr[i] = (char) (result + '0');
}
}
// 两数相加多出一位的情况
if (isCarryBit) {
resultCharArr[maxLength] = '1';
}
// 输出结果
resultCharArr = reverseArray(resultCharArr);
for (int i = 0; i < resultCharArr.length; i++) {
if (resultCharArr[i] == '\u0000') continue;
System.out.print(resultCharArr[i]);
}
}
/**
* 数组反转
* @param charArr
* @return
*/
public static char[] reverseArray(char[] charArr) {
char[] result = new char[charArr.length];
for (int i = 0; i < charArr.length; i++) {
result[i] = charArr[charArr.length - 1 - i];
}
return result;
}
}