#include <iostream>
#include <iomanip>
#include <string>
#include <sstream>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
string add(string n1,string n2){
string result = "";
int carry = 0;
if (n1.size() < n2.size()) {
swap(n1, n2);
}
int size1 = n1.size();
int size2 = n2.size();
for (int i = 0; i < size1; i++) {
int digit1 = n1[size1 - 1 - i] - '0';
int digit2 = (i < size2) ? n2[size2 - i - 1]-'0' : 0;
int sum = digit1 + digit2 + carry;
carry = sum / 10;
result = result + to_string(sum % 10);
}
if (carry != 0) {
result = result + to_string(carry);
}
reverse(result.begin(), result.end());
return result;
}
int main() {
int query; cin >> query;
for (int i = 1; i <= query; i++) {
string n1; cin >> n1;
string n2; cin >> n2;
string result = add(n1, n2);
cout << result << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKc3RyaW5nIGFkZChzdHJpbmcgbjEsc3RyaW5nIG4yKXsKICAgIHN0cmluZyByZXN1bHQgPSAiIjsKCiAgICBpbnQgY2FycnkgPSAwOwoKICAgIGlmIChuMS5zaXplKCkgPCBuMi5zaXplKCkpIHsKICAgICAgICBzd2FwKG4xLCBuMik7CiAgICB9CgogICAgaW50IHNpemUxID0gbjEuc2l6ZSgpOwogICAgaW50IHNpemUyID0gbjIuc2l6ZSgpOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTE7IGkrKykgewogICAgICAgIGludCBkaWdpdDEgPSBuMVtzaXplMSAtIDEgLSBpXSAtICcwJzsKICAgICAgICBpbnQgZGlnaXQyID0gKGkgPCBzaXplMikgPyBuMltzaXplMiAtIGkgLSAxXS0nMCcgOiAwOwoKICAgICAgICBpbnQgc3VtID0gZGlnaXQxICsgZGlnaXQyICsgY2Fycnk7CgogICAgICAgIGNhcnJ5ID0gc3VtIC8gMTA7CgogICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIHRvX3N0cmluZyhzdW0gJSAxMCk7CiAgICB9CgogICAgaWYgKGNhcnJ5ICE9IDApIHsKICAgICAgICByZXN1bHQgPSByZXN1bHQgKyB0b19zdHJpbmcoY2FycnkpOwogICAgfQoKICAgIHJldmVyc2UocmVzdWx0LmJlZ2luKCksIHJlc3VsdC5lbmQoKSk7CgogICAgcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4oKSB7CgogICAgaW50IHF1ZXJ5OyBjaW4gPj4gcXVlcnk7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gcXVlcnk7IGkrKykgewogICAgICAgIHN0cmluZyBuMTsgY2luID4+IG4xOwogICAgICAgIHN0cmluZyBuMjsgY2luID4+IG4yOwoKICAgICAgICBzdHJpbmcgcmVzdWx0ID0gYWRkKG4xLCBuMik7CiAgICAgICAgY291dCA8PCByZXN1bHQgPDwgZW5kbDsKICAgIH0KICAgIAogICAgCiAgICAKICAgIHJldHVybiAwOwp9Cg==