#include<cstdio>
#include<string>
using namespace std;
string add;
string sub;
string mul;

void ADD(string s1, string s2) {
    int len1 = s1.size();
    int len2 = s2.size();
    int carry = 0;
    if (len1 == len2) {
        add.insert(0, len1, '0');
        for (int i = len1 - 1 ; i >= 0 ; --i) {
            int a = s1[i] - '0';
            int b = s2[i] - '0';
            if ( (a + b + carry) > 9 ) {
                add[i] = (a + b - 10 + carry) + '0';
                carry = 1;
            } else if ((a + b + carry) <= 9 && (a + b + carry) >= 0) {
                add[i] = (a + b + carry) + '0';
                carry = 0;
            }
            if (i == 0 && (a + b + carry) > 9 ) {
                    add[i] = (a + b - 10 + carry) + '0';
                    add.insert(0,1,'1');
               
            }
        }
    } else if (len1 > len2) {
        int c = len1 - len2;
        s2.insert(len2, c, '0');
        for (int  i = len1 - 1  ; i >= c ; --i) {
            s2[i] = s2[i - c];
        }
        for (int i = 0 ; i < c ; ++i ) {
            s2[i] = '0';
        }
        ADD(s1, s2);
    } else if (len1 < len2) {
        int c = len2 - len1;
        s1.insert(len1, c, '0');
        for (int  i = len2 - 1  ; i >= c ; --i) {
            s1[i] = s1[i - c];
        }
        for (int i = 0 ; i < c ; ++i ) {
            s1[i] = '0';
        }
        ADD(s1, s2);
    }
}
void SUB(string s1, string s2) {
    bool ISbig;
    int len1 = s1.size();
    int len2 = s2.size();
    int jie = 0;
    if (len1 == len2) {
        sub.insert(0, len1, '0');
        int len3 = sub.size();
        for (int i = 0 ; i < len3 ; ++i) {
            if ((s1[i] - '0') < (s2[i] - '0')) {
                ISbig = false;
                break;
            } else if ((s1[i] - '0') > (s2[i] - '0')) {
                ISbig = true;
                break;
            } else if ((s1[i] - '0') == (s2[i] - '0')) {
                continue;
            }
        }
        if (ISbig == true) {
            for (int i = len1 - 1 ; i >= 0 ; --i) {
                int a = s1[i] - '0' - jie;
                int b = s2[i] - '0';
                if ((a - b) >= 0 ) {

                    sub[i] = (a - b) + '0';
                    jie = 0 ;
                } else if ((a - b) < 0) {
                    sub[i] =  (a + 10 - b) + '0';
                    jie = 1;
                }
            }
        } else {
            sub.clear();
            SUB(s2, s1);
            sub.insert(0, 1, '-');
        }
    } else if (len1 > len2) {
        int c = len1 - len2;
        s2.insert(len2, c, '0');
        for (int  i = len1 - 1  ; i >= c ; --i) {
            s2[i] = s2[i - c];
        }
        for (int i = 0 ; i < c ; ++i ) {
            s2[i] = '0';
        }
        SUB(s1, s2);
    } else if (len1 < len2) {
        SUB(s2, s1);
        sub.insert(0, 1, '-');
    }
}
void MUL(string s1, string s2) {
    int a[405], b[405];
    for (int i = 0 ; i < 405; ++i) {
        a[i] = 0;
        b[i] = 0;
    }
    int len1 = s1.size();
    int len2 = s2.size();
    for (int i = 0 ; i < len1 ; ++i) {
        a[i] = s1[len1 - 1 - i] - '0';
    }
    for (int i = 0 ; i < len2 ; ++i) {
        b[i] = s2[len2 - 1 - i] - '0';
    }
    int ans[810];
    for (int i = 0 ; i < 805 ; ++i) {
        ans[i] = 0;
    }
    for (int i = 0 ; i < len1 ; ++i) {
        for (int j = 0 ; j < len2; ++j) {
            ans[i + j] += a[i] * b[j];
        }
    }
    int len;
    for (int  i = 0  ; i < len1 + len2 ; ++i) {
        if (ans[i] >= 10) {
            ans[i + 1] += ans[i] / 10;
            ans[i] = ans[i] % 10;
        }
    }
    for (int i = 804; i >= 0; i--) {
        if (ans[i] != 0) {
            len = i;
            break;
        }
    }
    for (int i = len ; i >= 0; i--) {
        mul += ('0' + ans[i]);
    }


}

int main() {
    char a[100];
    char b[100];
    fgets(a, 100, stdin);
    fgets(b, 100, stdin);
    string s1 = a;
    s1.pop_back();
    string s2 = b;
    s2.pop_back();
    ADD(s1, s2);
    SUB(s1, s2);
    int len = sub.size();
    if (sub[0] == '0') {
        for (int i = 0; i < len; ++i) {
            sub[i] = sub[i + 1];
        }
        sub.erase(len, 1);

    }
    if (sub[0] == '-' && sub[1] == '0') {
        for (int i = 1; i <= len; ++i) {
            sub[i] = sub[i + 1];
        }
        sub.erase(len, 1);
    }
    MUL(s1, s2);
    printf("%s\n", add.c_str());
    printf("%s\n", sub.c_str());
    printf("%s\n", mul.c_str());
}