#include <sstream>
#include <iostream>
#include <vector>
using namespace std;
string reserveString(string x);
void split(vector<string> &result, string str, char delim );
int getNumberReductedZero(string number );
string removeLeadingZeros(string number);
int main() {
int count;
string integersArray[10000];
cin >> count;
for(int i=0; i<count; i++) {
cin.sync();
getline(cin, integersArray[i]);
}
for(int i=0; i<count; i++) {
vector<string> splited;
string reservedString = reserveString(integersArray[i]);
split(splited, reservedString, ' ');
int firstNumber = getNumberReductedZero(splited.at(0));
int secondNumber = getNumberReductedZero(splited.at(1));
int result = firstNumber + secondNumber;
reservedString = to_string(result);
reservedString = reserveString(reservedString);
reservedString = removeLeadingZeros(reservedString);
cout << reservedString << endl;
}
return 0;
}
string reserveString(string x){
int length = x.length();
string y;
for(int i=0; i<length; i++) {
y += x[length - 1 - i];
}
return y;
}
void split(vector<string> &result, string str, char delim ) {
string tmp;
string::iterator i;
result.clear();
for(i = str.begin(); i <= str.end(); ++i) {
if((const char)*i != delim && i != str.end()) {
tmp += *i;
} else {
result.push_back(tmp);
tmp = "";
}
}
}
int getNumberReductedZero(string number){
number = removeLeadingZeros(number);
return atoi(number.c_str());
}
string removeLeadingZeros(string number){
return number.erase(0, min(number.find_first_not_of('0'), number.size()-1));
}