#include <iostream>

int lastIndex(char*);
void charAdd(char*, char*,char*, const int&, const int&);
void outputNumber(char*);

int main(){
	int datasetNumber;
	std::cin >> datasetNumber;
	for (int i = 0; i < datasetNumber; ++i){
		char number1[101];
		char number2[101];
		char sumNumber[102];

		for (int j = 0; j < 101; j++){
			sumNumber[j] = '0';
		}

		std::cin >> number1 >> number2;

		int lastIndex1 = lastIndex(number1);
		int lastIndex2 = lastIndex(number2);

		charAdd(number1, number2, sumNumber, lastIndex1, lastIndex2);
		outputNumber(sumNumber);
	}
}

int lastIndex(char* charNumber){
	int index;
	for (index = 0; charNumber[index + 1] != '\0'; ++index);
	return index;
}

void charAdd(char* number1, char* number2,char* sumNumber,
	const int& lastIndex1, const int& lastIndex2){

	int index1, index2;
	if (lastIndex1 > lastIndex2){
		index1 = lastIndex1;
		index2 = lastIndex2;
	}
	else{
		index1 = lastIndex1;
		index2 = lastIndex2;
	}

	sumNumber[101] = '\0';
	for (int i = lastIndex1, sumIndex = 100;
		i >= 0; --i, --sumIndex){

		sumNumber[sumIndex] += number1[i] - '0';
	}
	for (int j = lastIndex2, sumIndex = 100;
		j >= 0; --j, --sumIndex){

		sumNumber[sumIndex] += number2[j] - '0';
		for (int index = sumIndex; sumNumber[index] > '9'; --index){
			sumNumber[index] -= 10;
			sumNumber[index - 1] += 1;
		}
	}
}

void outputNumber(char* sumNumber){
	int i;
	for (i = 0; sumNumber[i] == '0'; ++i);
	
	if (i <= 20){
		std::cout << "overflow" << std::endl;
	}
	else if (sumNumber[i] == '\0'){
		std::cout << 0 << std::endl;
	}
	else{
		for (int j = i; sumNumber[j] != '\0'; ++j){
			std::cout << sumNumber[j];
		}
		std::cout << std::endl;
	}
}
