#include <iostream>
using namespace std;
int main()
{
int n; cin >> n;
for (int i = 0; i < n; i++)
{
char * tab1 = new char [10000];
char * tab2 = new char [10000];
char * suma = new char [2000000];
cin >> tab1 >> tab2;
int pTab1 = 0, pTab2 = 0, bufor = 0, aktualnaSuma, liczba1, liczba2;
while (tab1[pTab1])
pTab1++;
while (tab2[pTab2])
pTab2++;
int j = 1000000;
bool powtorz = true;
while (powtorz)
{
if (static_cast <int> ((tab1[pTab1-1])-48) >= 0)
liczba1 = static_cast <int> ((tab1[pTab1-1])-48);
else
liczba1 = 0;
if (static_cast <int> ((tab2[pTab2-1])-48) >= 0 )
liczba2 = static_cast <int> ((tab2[pTab2-1])-48);
else
liczba2 = 0;
aktualnaSuma = liczba1 + liczba2;
if (aktualnaSuma <= 9)
{
suma[j] = static_cast <char> (aktualnaSuma+48+bufor);
bufor = 0;
}
else
{
suma[j] = static_cast <char> (aktualnaSuma-10+48+bufor);
bufor = 1;
}
j--;
pTab1--;
pTab2--;
if (pTab1 <= 0 && pTab2 <= 0)
powtorz = false;
}
for (int i = 0; i <= 1000000; i++)
if (suma[i] != '\0')
cout << suma[i];
cout << endl;
delete [] tab1;
delete [] tab2;
delete [] suma;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewogICAgaW50IG47IGNpbiA+PiBuOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIGNoYXIgKiB0YWIxID0gbmV3IGNoYXIgWzEwMDAwXTsKICAgICAgICBjaGFyICogdGFiMiA9IG5ldyBjaGFyIFsxMDAwMF07CiAgICAgICAgY2hhciAqIHN1bWEgPSBuZXcgY2hhciBbMjAwMDAwMF07CgogICAgICAgIGNpbiA+PiB0YWIxID4+IHRhYjI7CgogICAgICAgIGludCBwVGFiMSA9IDAsIHBUYWIyID0gMCwgYnVmb3IgPSAwLCBha3R1YWxuYVN1bWEsIGxpY3piYTEsIGxpY3piYTI7CiAgICAgICAgd2hpbGUgKHRhYjFbcFRhYjFdKQogICAgICAgICAgICBwVGFiMSsrOwogICAgICAgIHdoaWxlICh0YWIyW3BUYWIyXSkKICAgICAgICAgICAgcFRhYjIrKzsKCiAgICAgICAgaW50IGogPSAxMDAwMDAwOwogICAgICAgIGJvb2wgcG93dG9yeiA9IHRydWU7CiAgICAgICAgd2hpbGUgKHBvd3RvcnopCiAgICAgICAgewoKICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0IDxpbnQ+ICgodGFiMVtwVGFiMS0xXSktNDgpID49IDApCiAgICAgICAgICAgICAgICAgbGljemJhMSA9ICBzdGF0aWNfY2FzdCA8aW50PiAoKHRhYjFbcFRhYjEtMV0pLTQ4KTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGxpY3piYTEgPSAwOwoKICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0IDxpbnQ+ICgodGFiMltwVGFiMi0xXSktNDgpID49IDAgKQogICAgICAgICAgICAgICAgbGljemJhMiA9ICBzdGF0aWNfY2FzdCA8aW50PiAoKHRhYjJbcFRhYjItMV0pLTQ4KTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgbGljemJhMiA9IDA7CgogICAgICAgICAgICBha3R1YWxuYVN1bWEgPSBsaWN6YmExICsgbGljemJhMjsKCiAgICAgICAgICAgIGlmIChha3R1YWxuYVN1bWEgPD0gOSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgc3VtYVtqXSA9IHN0YXRpY19jYXN0IDxjaGFyPiAoYWt0dWFsbmFTdW1hKzQ4K2J1Zm9yKTsKICAgICAgICAgICAgICAgIGJ1Zm9yID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHN1bWFbal0gPSBzdGF0aWNfY2FzdCA8Y2hhcj4gKGFrdHVhbG5hU3VtYS0xMCs0OCtidWZvcik7CiAgICAgICAgICAgICAgICBidWZvciA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGotLTsKICAgICAgICAgICAgcFRhYjEtLTsKICAgICAgICAgICAgcFRhYjItLTsKCgoKICAgICAgICAgICAgaWYgKHBUYWIxIDw9IDAgJiYgcFRhYjIgPD0gMCkKICAgICAgICAgICAgICAgIHBvd3RvcnogPSBmYWxzZTsKCiAgICAgICAgfQoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAxMDAwMDAwOyBpKyspCiAgICAgICAgICAgIGlmIChzdW1hW2ldICE9ICdcMCcpCiAgICAgICAgICAgICAgICBjb3V0IDw8IHN1bWFbaV07CiAgICAgICAgY291dCA8PCBlbmRsOwogICAgICAgIGRlbGV0ZSBbXSB0YWIxOwogICAgICAgIGRlbGV0ZSBbXSB0YWIyOwogICAgICAgIGRlbGV0ZSBbXSBzdW1hOwoKICAgIH0KICAgIHJldHVybiAwOwp9Cg==