#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;

int main(void){
  int N;
  string str1, str2;
  cin >> N;
  for(int k = 0; k < N; k++){
    vector<int> ans;
    cin >> str1 >> str2; 
    if(str1.size() > 80 || str2.size() > 80){
      cout << "overflow" << endl;
      continue;
    }

    int carry, sum;
    string *bigger;

    if(str1.size() > str2.size()){
      bigger = &str1;
    }else{
      bigger = &str2;
    }

    vector<int>::iterator ite = ans.begin();
    pair<int, int> P;
    P.first = min(str1.size(), str2.size());
    P.second = max(str1.size(), str2.size());

    for(int i = 0; i < P.first; i++){
      sum = (str2[str2.size() - 1 - i] - 48) + (str1[str1.size() - 1 - i] - 48) + carry;
      if((sum / 10) >= 0){
        carry = sum / 10;
        sum -= (sum / 10) * 10;
      }else{
        carry = 0;
      }
      ans.insert(ans.begin(), sum);
    }
    
    for(int i = P.first; i < P.second; i++){
      sum = (bigger->at(bigger->size() - 1 - i) - 48) + carry;
      if((sum / 10) >= 0){
        carry = sum / 10;
        sum -= (sum / 10) * 10;
      }else{
        carry = 0;
      }
      ans.insert(ans.begin(), sum);
    }

    for(int i = 0; i < ans.size(); i++){
      if(carry != 0){
        cout << carry;
        carry = 0;
      }
      cout << ans[i];
    }
    cout << endl;
  }
  return 0;
}