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

int strlen(char * str, int len) {
	int i=0;
	while(1) {
		if (str[i]=='\0') {
			return i;
		}
		if (len==i) break;
		i++;
	}
	return len;
}

int main() {
	char *a,*b,*c;
	int n,len ,lena ,lenb , i, j, p, q, r1, r2, or1;
	scanf("%d",&n);
	// the definition of a , b , c
	a = (char *)malloc( 81 * n);
	b = (char *)malloc( 81 * n);
	c = (char *)malloc( 82 * n +2);
	for(i=0;i<n;i++) {
		scanf("%s",&a[i*81]);
		scanf("%s",&b[i*81]);
	}
	for(j=0;j<n;j++) {
		lena = strlen((char *)(&a[0] + j*81),81)-1;
		lenb = strlen((char *)(&b[0] + j*81),81)-1;
		if ( lena>lenb ) len = lena;
		else len = lenb;
		
		c[j*82+len+1]='\0';
		or1 = 0;
		r1 = r2 = 0;
		for(i=0;i<=len;i++) {
			// '0' is 48.

			if ((lena-i)>=0) p = a[j*81+lena-i] - '0';
			else p = 0;

			if ((lenb-i)>=0) q = b[j*81+lenb-i] - '0';
			else q = 0;

			or1 = r1;
			// Quotient
			if ((p+q+or1)>=10) r1 = 1;
			else r1 = 0;

			r2 = (p+q+or1)%10; // Remainder
			c[j*82+len-i] = '0' + r2;
		}
		if (r1>0) {
			c[j*82+len+2]='\0';
			for(i=0;i<=len;i++) {
				c[j*82+len+1-i] = c[j*82+len-i];
			}
			c[j*82] = r1 + '0';
			len++;
		}
		if (len>80){
			printf("Overflow\n");
		}else {
			printf("%s\n",&c[j*82]);
		}
	}
	free(a);
	free(b);
	free(c);
	exit(0);
}