#include<iostream>
#include<string>
#include<algorithm>
#include<list>
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<numeric>
#include<vector>
#include<cstdio>
#include<climits>
#include<cfloat>
#include<cstring>
#define foreach(t,p) for(t::iterator it=p.begin();it!=p.end();++it)
#define rforeach(t,p) for(t::reverse_iterator it=p.rbegin();it!=p.rend();++it)
#define all(p) p.begin(),p.end()
#define rep(i,n) for(int i=0;i<n;i++)
#define FOREACH(t,p,tit) for(t::iterator tit=p.begin();tit!=p.end();++tit)
using namespace std;
int main()
{
    int n;
    cin>>n;
    rep(k,n)
    {
        string s1,s2,temp;
        cin>>s1; cin>>s2;
        if(s1.size()<s2.size()){temp=s1;s1=s2;s2=temp;}
        int d = s1.size()-s2.size();
        rep(i,d){ s2 = "0" + s2;}
        //cout << s1<<"\n"<<s2<<endl;
        int ku=0;
        for(int i=s1.size()-1;i>-1;i--)
        {
            int next =0;
            if( (int)(s2[i]-'0'+s1[i]-'0')+ku >= 10){next = 1;}
            s1[i] =(( (int)(s2[i]-'0'+s1[i]-'0' ) +ku) % 10 + '0');
            ku = next;
            //cout << s1[i];
        }
        if(ku+s1.size()>80){cout <<"overflow"<<endl;continue;}
        if(ku)cout<<1;
        cout << s1<<endl;

    }
    return 0;
}