Problem:
National Budget

A country has a budget of more than 81 trillion yen. We want to process such data, but conventional integer type which uses signed 32 bit can represent up to 2,147,483,647.

Your task is to write a program which reads two integers (more than or equal to zero), and prints a sum of these integers.

If given integers or the sum have more than 80 digits, print "overflow".

Input

Input consists of several datasets. In the first line, the number of datasets N (1 ≤ N ≤ 50) is given. Each dataset consists of 2 lines:

The first integer
The second integer

The integer has at most 100 digits.

Output

For each dataset, print the sum of given integers in a line.

Sample Input

6
1000
800
9999999999999999999999999999999999999999
1
99999999999999999999999999999999999999999999999999999999999999999999999999999999
1
99999999999999999999999999999999999999999999999999999999999999999999999999999999
0
100000000000000000000000000000000000000000000000000000000000000000000000000000000
1
100000000000000000000000000000000000000000000000000000000000000000000000000000000
100000000000000000000000000000000000000000000000000000000000000000000000000000000

Output for the Sample Input

1800
10000000000000000000000000000000000000000
overflow
99999999999999999999999999999999999999999999999999999999999999999999999999999999
overflow
overflow

Solution in C# (judge verdict: Wrong Answer)

using System;
using System.Runtime.InteropServices;

class AOJ0015{
	const int bufsiz=32;

	//MacPorts
	//const string libgmp="/opt/local/lib/libgmp.dylib";
	//ideone
	//const string libgmp="/usr/lib/i386-linux-gnu/libgmp.so.10";
	//paiza.io/atcoder
	//const string libgmp="/usr/lib/x86_64-linux-gnu/libgmp.so.10";
	//wandbox/yukicoder
	const string libgmp="/usr/lib64/libgmp.so.10";
	//AOJ
	//const string libgmp="/usr/lib64/libgmp.so.3";

	[DllImport("msvcrt",CallingConvention=CallingConvention.Cdecl)]static extern int write(int x,string y,int z);
	[DllImport("msvcrt",CallingConvention=CallingConvention.Cdecl)]static extern IntPtr fopen(string x,string y);
	[DllImport("msvcrt",CallingConvention=CallingConvention.Cdecl)]static extern IntPtr fdopen(int x,string y);
	[DllImport("msvcrt",CallingConvention=CallingConvention.Cdecl)]static extern int fflush(IntPtr x);
	[DllImport("msvcrt",CallingConvention=CallingConvention.Cdecl)]static extern int fputs(string x,IntPtr y);
	[DllImport("msvcrt",CallingConvention=CallingConvention.Cdecl)]static extern int system(string x);

	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_init(IntPtr x);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_clear(IntPtr x);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_out_str(IntPtr x,int y,IntPtr z);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_set_str(IntPtr x,string y,int z);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_set(IntPtr x,IntPtr y);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_set_si(IntPtr x,long y);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern int  __gmpz_cmp_si(IntPtr x,long y);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern int  __gmpz_cmp(IntPtr x,IntPtr y);

	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_add(IntPtr x,IntPtr y,IntPtr z);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_sub(IntPtr x,IntPtr y,IntPtr z);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_mul(IntPtr x,IntPtr y,IntPtr z);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_tdiv_q(IntPtr x,IntPtr y,IntPtr z);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_tdiv_r(IntPtr x,IntPtr y,IntPtr z);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_add_ui(IntPtr x,IntPtr y,long z);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_sub_ui(IntPtr x,IntPtr y,long z);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_mul_ui(IntPtr x,IntPtr y,long z);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_tdiv_q_ui(IntPtr x,IntPtr y,long z);
	[DllImport(libgmp,CallingConvention=CallingConvention.Cdecl)]static extern void __gmpz_tdiv_r_ui(IntPtr x,IntPtr y,long z);

	static void Main(){
		IntPtr stdout=fopen("/dev/stdout","w");
		IntPtr a=Marshal.AllocHGlobal(bufsiz);__gmpz_init(a);
		IntPtr b=Marshal.AllocHGlobal(bufsiz);__gmpz_init(b);
		IntPtr c=Marshal.AllocHGlobal(bufsiz);__gmpz_init(c);
		__gmpz_set_str(c,"100000000000000000000000000000000000000000000000000000000000000000000000000000000",10);

		int T=int.Parse(Console.ReadLine());
		for(;T>0;T--){
			string A=Console.ReadLine();
			string B=Console.ReadLine();
			__gmpz_set_str(a,A,10);
			__gmpz_set_str(b,B,10);
			__gmpz_add(a,a,b);
			if(__gmpz_cmp(a,c)>=0){
				fputs("overflow",stdout);
			}else{
				__gmpz_out_str(stdout,10,a);
				fputs("",stdout);
			}
		}
	
		__gmpz_clear(a);Marshal.FreeHGlobal(a);
		__gmpz_clear(b);Marshal.FreeHGlobal(b);
		__gmpz_clear(c);Marshal.FreeHGlobal(c);
	}
}