#include <bits/stdc++.h>
using namespace std;
class Longint{
  vector<long long> V;
public:
  Longint(string s);
  int size();
  void print();
  Longint operator+(const Longint &o);
  Longint operator+=(const Longint &o);
};

int Longint::size(){
  return (this->V.size()-1)*9+to_string(V.back()).size();
}

void Longint::print(){
  printf("%lld",this->V.back());
  for (int i=this->V.size()-2;i>=0;i--){
    printf("%09lld",this->V[i]);
  }
}

Longint Longint::operator+(const Longint &o){
  Longint R("");
  const long long MOD = 1000000000;
  int i,k = max(this->V.size(),o.V.size());
  for(i=0;i<k;i++){
    R.V.push_back(0);
    if(i<this->V.size()){
      R.V.back() += this->V[i];
    }
    if(i<o.V.size()){
      R.V.back() += o.V[i];
    }
  }
  for(i=0;i<k-1;i++){
    R.V[i+1] += R.V[i]/MOD;
    R.V[i] %= MOD;
  }
  if(R.V[k-1]>=MOD){
    R.V.push_back(R.V[k-1]/MOD);
    R.V[k-1]%=MOD;
  }
  return R;
}

Longint Longint::operator+=(const Longint &o){
  return *this = *this+o;
}

Longint::Longint(string s){
  int n=s.size(),i,j = 0;
  long long d,h[9] = {1,10,100,1000,10000,100000,1000000,10000000,100000000};
  for (i=n-1;i>=0;i--){
    d=s[i]-'0';
    if(j == 0){
      this->V.push_back(d);
    }
    else{
      this->V.back() += d*h[j];
    }
    j = (j+1)%9;
  }
}

int main(){
  int t,i;cin >> t;
  string a,b;
  for(i=0;i<t;i++){
    cin >> a >> b;
    Longint G(a),H(b);
    G += H;
    if(G.size() > 80) printf("overflow");
    else G.print();
    printf("\n");
  }
}

