#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
#include<cmath>
#include<sstream>
#include<stack>
#include<map>
using namespace std;
#define pd pair<double,double>
	
	string rever(string a){
		string b=a;
		for(int i=0;i<a.size();i++)b[i]=a[a.size()-i-1];
		//cout<<b<<endl;
		return b;
	}
	
	int main(){
	string a,b,c;
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
	cin>>a>>b;
	c="ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss";
	if(a.size()<b.size())swap(a,b);
	b=rever(b);
	cout<<c<<endl;
	//cout<<a<<" "<<b<<endl;
	for(int i=0;i<=a.size()-b.size();i++){b.push_back('0');}
	b=rever(b);
	int as=a.size();
	bool kuriagari=false;
	for(int i=as-1;i>=0;i--){
		int n1=a[i]-'0';
		int n2=b[i]-'0';
		int ans=0;
		ans=n1+n2;
		if(kuriagari)ans++;
		if(ans>=10){
		kuriagari=true;
		ans-=10;
		}
		else kuriagari=false;
		c[i]=ans+'0';
	}
	
	if(c.find("s")!=string::npos){
		int fin=c.find("s");
		c.erase(fin);
	}
	//cout<<c<<endl;
	
	if(c.size()<80)cout<<c<<endl;
	else cout<<"overfllow"<<endl;
	}
    return 0;
}