#include<iostream> #include<cstdio> #include<cstring> #include<string> using namespace std; const int MAXN = 10000; struct BigInteger { int digit[MAXN]; int length; BigInteger(); BigInteger(int x); BigInteger(string str); BigInteger(const BigInteger& b); BigInteger operator=(int x); BigInteger operator=(string str); BigInteger operator=(const BigInteger& b); BigInteger operator+(const BigInteger& b); friend istream& operator>>(istream& cin, BigInteger& b); friend ostream& operator<<(ostream& cout, const BigInteger& b); }; BigInteger::BigInteger() { memset(digit, 0, sizeof(digit)); length = 0; } BigInteger::BigInteger(int x) { memset(digit, 0, sizeof(digit)); length = 0; if (!x) { digit[length++] = x; } while (x) { digit[length++] = x % 10; x /= 10; } } BigInteger::BigInteger(string str) { memset(digit, 0, sizeof(digit)); length = str.size(); for (int i = 0; i < length; ++i) { digit[i] = str[length - 1 - i] - '0'; } } BigInteger::BigInteger(const BigInteger& b) { memset(digit, 0, sizeof(digit)); length = b.length; for (int i = 0; i < length; ++i) { digit[i] = b.digit[i]; } } BigInteger BigInteger::operator=(int x) { memset(digit, 0, sizeof(digit)); length = 0; if (!x) { digit[length++] = x; } while (x) { digit[length++] = x % 10; x /= 10; } return *this; } BigInteger BigInteger::operator=(string str) { memset(digit, 0, sizeof(digit)); length = str.size(); for (int i = 0; i < length; ++i) { digit[i] = str[length - 1 - i] - '0'; } return *this; } BigInteger BigInteger::operator=(const BigInteger& b) { memset(digit, 0, sizeof(digit)); length = b.length; for (int i = 0; i < length; ++i) { digit[i] = b.digit[i]; } return *this; } BigInteger BigInteger::operator+(const BigInteger& b) { BigInteger ans; int carry = 0; for (int i = 0; i < length || i < b.length; ++i) { ans.digit[ans.length++] = (digit[i] + b.digit[i] + carry) % 10; carry = (digit[i] + b.digit[i] + carry) / 10; } if (carry) { ans.digit[ans.length++] = carry; } return ans; } istream& operator>>(istream& cin, BigInteger& b) { string in; cin >> in; b = in; return cin; } ostream& operator<<(ostream& cout, const BigInteger& b) { for (int i = b.length - 1; i >= 0; --i) { cout << b.digit[i]; } return cout; } int main() { BigInteger a; BigInteger b; while (cin >> a >> b) { cout << a + b << endl; } return 0; }