#include<algorithm>
#include<iostream>
#include<stdio.h>
#include<string.h>

int n;
char a[256], b[256], c[256];	
int sz = 0;
int carry = 0;

int main()
{
        std::cin >> n;
	
	while( n-- ){
		memset( a, '0', 80 );
		memset( b, '0', 80 );
		std::cin >> a >> b;
		
		int maxlen = std::max( strlen( a ), strlen( b ) );
		
		if( maxlen > 80 ){
		 	goto OVERFLOW;
		}
		
		std::reverse( a, a + strlen( a ) );
		std::reverse( b, b + strlen( b ) );
		
		a[strlen( a )] = '0';
		b[strlen( b )] = '0';
		
		for( int i = 0; i <= maxlen + 1; i++ ){
			int na = a[i] - '0' + carry;
			int nb = b[i] - '0';
			
			if( na + nb >= 10 ){
				na += nb - 10;
				carry = 1;
			}
			else{
				na += nb;
				carry = 0;
			}
			
			c[i] = na + '0';
		}
		
		sz = maxlen;
		
		if( c[sz] >= '1' && c[sz] <= '9' ){
		 	sz++;
		}
		
		if( sz >= 80 ){
	OVERFLOW:
		 	std::cout << "overflow" << std::endl;
		}
		else{
			std::reverse( c, c + sz );
			c[sz] = '\0';
			std::cout << c << std::endl;
		}
		sz = 0;
		carry = 0;
	}

 	return 0;
}