#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define min(x, y) ((x) < (y) ? (x) : (y))
#define max(x, y) ((x) > (y) ? (x) : (y))

int main(void)
{
	char num1[81];
	char num2[81];
	char num3[81];
	int n;
	
	scanf("%d", &n);
	
	for (int i = 0; i < n; i++){
		scanf("%s%s", num1, num2);
		
		int i;
		int len = min(strlen(num1), strlen(num2));
		memset(num3, 0, sizeof(num3));
		for (i = 0; i < len; i++){
			num3[i] += num1[strlen(num1) - 1 - i] - '0' + num2[strlen(num2) - 1 - i] - '0';
			if (num3[i] >= 10){
				num3[i + 1] = 1;
				num3[i] %= 10;
			}
			num3[i] += '0';
		}
		
		len = max(strlen(num1), strlen(num2));
		for (; i < len; i++){
			num3[i] += (strlen(num1) == len ? num1[strlen(num1) - 1 - i] : num2[strlen(num2) - 1 - i]) - '0';
			if (num3[i] >= 10){
				num3[i + 1] = 1;
				num3[i] %= 10;
			}
			num3[i] += '0';
		}
		
		if (num3[i] == 1){
			num3[i] += '0';
		}
		
		if (num3[80] != 0){
			printf("overflow\n");
		}
		
		else {
			for (int i = 0; i < strlen(num3); i++){
				num1[i] = num3[strlen(num3) - 1 - i];
			}
			num1[strlen(num3)] = '\0';
			
			printf("%s\n", num1);
		}
	}
	
	return (0);
}