Go: package main

import (
        "fmt"
        "bufio"
        "os"
)

func main() {
        var n int
        var a, b string
        sc := bufio.NewScanner(os.Stdin)
        fmt.Scanf("%d", &n)
        for i := 0; i < n; i++ {
                sc.Scan()
                a = sc.Text()
                sc.Scan()
                b = sc.Text()

                if len(a) > len(b) {
                        s := add(a, b)
                        if s[len(a)] > 0 {
                                if len(a) >= 80 {
                                        fmt.Printf("overflow")
                                } else {
                                        for i := 0; i <= len(a);i++ {
                                                fmt.Printf("%d", s[len(a)-i])
                                        }
                                }
                                fmt.Printf("\n")
                        } else {
                                if len(a)-1 >= 80 {
                                        fmt.Printf("overflow")
                                } else {
                                        for i := 0; i < len(a);i++ {
                                                fmt.Printf("%d", s[len(a)-i-1])
                                        }
                                }
                                fmt.Printf("\n")
                        }
                } else {
                        s := add(b, a)
                        if s[len(b)] > 0 {
                                if len(b) >= 80 {
                                        fmt.Printf("overflow")
                                } else {
                                        for i := 0; i <= len(b);i++ {
                                                fmt.Printf("%d", s[len(b)-i])
                                        }
                                }
                                fmt.Printf("\n")
                        } else {
                                if len(b)-1 >= 80 {
                                        fmt.Printf("overflow")
                                } else {
                                        for i := 0; i < len(b);i++ {
                                                fmt.Printf("%d", s[len(b)-i-1])
                                        }
                                }
                                fmt.Printf("\n")
                        }
                }
        }
}

// expects ln > lm
func add(n string, m string) (s [100]int) {
        ln := len(n)
        lm := len(m)
        var sum [100]int

        for i := 0; i < ln; i++ {
                var s, t int
                s = int(n[ln-1-i]) - int('0')

                if lm - 1 - i >= 0 {
                        t = int(m[lm-1-i]) - int('0')
                } else {
                        t = 0
                }

                sum[i+1] = (s + t + sum[i]) / 10
                sum[i] = (s + t + sum[i]) % 10
        }

        return sum
}

Python: # 国家予算

def main():
    N = int(input())
    for _ in range(N):
        n1 = input().strip()
        n2 = input().strip()

        #print(f"n1: {n1}\nn2: {n2}")
        if len(n1) > 80 or len(n2) > 80:
            print("overflow")
            continue

        print(add(n1, n2))
    return

def add(n1, n2):
    """n1, n2: str"""
    kotae = ""
    n1 = n1[::-1] # reversed
    n2 = n2[::-1]

    if len(n1) < len(n2): # 長い方がn1
        n1, n2 = n2, n1
    shorter = min(len(n1), len(n2))
    longer = max(len(n1), len(n2))

    idx, kuriagari = 0, 0
    while idx < longer:
        if idx >= shorter:
            tmp = int(n1[idx]) + kuriagari
            #print(f"idx: {idx}, tmp: {tmp}")
            kuriagari = 1 if tmp >= 10 else 0
            kotae += str(tmp)[-1]
            idx += 1

        while idx < shorter:
            tmp = int(n1[idx]) + int(n2[idx]) + kuriagari
            #print(f"idx: {idx}, tmp: {tmp}")
            kuriagari = 1 if tmp >= 10 else 0

            kotae += str(tmp)[-1]
            idx += 1

    if kuriagari:
        kotae += "1"

    if len(kotae) > 80:
        return "overflow"
    else:
        return kotae[::-1]

if __name__ == "__main__":
    main()

Python: # AOJ 0015 National Budget
# Python3 2018.6.9 bal4u

n = int(input())
for i in range(n):
    a = str(input())
    b = str(input())
    if len(a) > 80 or len(b) > 80:
        print('overflow')
    else:
        s = str(int(a)+int(b))
        if len(s) <= 80:
            print(s)
        else:
            print('overflow')

Python: #!/usr/bin/env python
#-*- coding:utf-8 -*-

import sys
import math

n = int(input())

for _ in range(n):
    x = int(input())
    y = int(input())
    print(x+y)

Python: n = int(input())
for i in range(n):
  a = int(input())
  b = int(input())
  c = a + b
  if len(str(c)) > 80:
    print("overflow")
  else:
    print(c)

Python: for i in range(int(input())):
    a = int(input())
    b = int(input())
    if a + b > 2147483647:
        print("overflow")
    else:
        print(a)

Python: n=int(input())
ans_list=[]

for i in range(n):
	a=int(input())
	b=int(input())
	c=a+b
	if max(a,b,c)>=10**80:
		ans_list.append("overflow")
	else:
		ans_list.append(c)

for i in ans_list:
	print(i)

Python: import heapq
from collections import deque
from enum import Enum
import sys
import math
from _heapq import heappush, heappop
import copy

BIG_NUM = 2000000000
HUGE_NUM = 99999999999999999
MOD = 1000000007
EPS = 0.000000001
sys.setrecursionlimit(100000)


num_query = int(input())

for _ in range(num_query):
    A = list(map(int,input()))
    B = list(map(int,input()))

    if len(A) > 80 or len(B) > 80:
        print("overflow")
        continue

    if len(B) > len(A): #len(B) <= len(A)にする
        A,B = B,A
    A.reverse()
    B.reverse()

    ANS = deque()
    add = 0

    for digit in range(len(A)):
        if digit >= len(B):
            tmp = add+A[digit]
            add = tmp//10
            ANS.append(tmp%10)
        else:
            tmp = add+B[digit]+A[digit]
            add = tmp//10
            ANS.append(tmp%10)

    if len(A) == 80 and add == 1:
        print("overflow")
    else:
        if add == 1:
            ANS.append(1)

        while len(ANS) > 0:
            print("%d"%(ANS.pop()),end="")
        print()

Python: # -*- coding: utf-8 -*-
import math

n=int(input())

for i in range(n):
    a=int(input())
    b=int(input())
    st=str(a+b)
    if len(st)>80:
        print("overflow")
    else:
        print(st)

Python: import math

N = int(input())
for i in range(N):
    a = int(input())
    b = int(input())
    if a >= 10**79 or b >= 10 ** 79 or a + b >= 10 ** 79:
        print("overflow")
    else:
        print(a + b)

Python: from functools import reduce
from operator import add
num = int(input())
for _ in range(num):
    budget = reduce(add, [int(input()) for _ in range(2)])
    if len(str(budget)) > 80:
        print('overflow')
    else:
        print(budget)

Python: from decimal import Decimal


n = int(input())
for _ in range(n):
    a = Decimal(input())
    b = Decimal(input())
    s = a + b
    s = str(s)
    if len(s) >= 80:
        print("overflow")
    else:
        print(s)

Python: import sys
f = sys.stdin
n = int(f.readline())
for _ in range(n):
    a = f.readline().strip()
    b = f.readline().strip()
    c = int(a) + int(b)
    c = '{}'.format(c)
    print(c if len(c) <= 80 else 'overflow')

Python: n = int(input())
for _ in range(n):
    a = sum([int(input()) for _ in range(2)])
    print(a if a < 10**80 else 'overflow')

Python: import math

n = int(input())
for i in range(0, n) :
    a = int(input())
    b = int(input())
    if (math.log10(a + b) + 1 > 80) :
        print("overflow")
        continue
    print(a + b)

Python: n = int(input())
for i in range(n):
	s = int(input())+int(input())
	if len(str(s))>80:
		print("overflow")
	else:
		print(s)