import std;

void main () {
    char[] A = readln.split[0].dup;
    char[] B = readln.split[0].dup;
    A.reverse, B.reverse;

    solve(A, B);
}

void solve (char[] A, char[] B) {
    char[] C;
    immutable minlen = min(A.length, B.length);
    foreach (i; 0..minlen) {
        if ((A[i] == '1' && B[i] == '1') || (A[i] == '0' && B[i] == '0')) {
            C ~= '0';
        } else {
            C ~= '1';
        }
    }

    if (A.length == minlen) {
        C ~= B[minlen..$];
    } else {
        C ~= A[minlen..$];
    }

    long ans = 0;
    long base = 1;
    foreach (x; C) {
        if (x == '1') {
            ans += base;
        }
        base *= 2;
    }

    writeln(ans);
}