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;
    }
}