#include <iostream>
#include <fstream>
#include <sstream>
#include <string.h>
using namespace std;
typedef int BigN[10009];
BigN a;
BigN b;
BigN result;
bool a_flag, b_flag;
void print(BigN &num)
{
for(int i = num[0]; i > 0; --i)
cout << num[i];
cout << endl;
}
void read_big(string &str1, string &str2)
{
if( str1[0] == '-')
a_flag = true;
if( str2[0] == '-')
b_flag = true;
if(!a_flag)
{
a[0] = str1.size();
for(int i = 1; i <= a[0]; ++i)
a[i] = str1[a[0]-i] - '0';
}
else
{
a[0] = str1.size();
for(int i = 1; i < a[0]; ++i)
a[i] = str1[a[0]-i] - '0';
}
while( (a[0] > 1) && ( a[a[0]] == 0) )
--a[0];
if(!b_flag)
{
b[0] = str2.size();
for(int i = 1; i <= b[0]; ++i)
b[i] = str2[b[0]-i] - '0';
}
else
{
b[0] = str2.size();
for(int i = 1; i < b[0]; ++i)
b[i] = str2[b[0]-i] - '0';
}
while( (b[0] > 1) && ( b[b[0]] == 0) )
--b[0];
}
int compare(void)
{
int sign = 0;
if ( a[0] < b[0] )
{
sign = -1;
}
else if ( a[0] == b[0] )
{
int len = a[0];
for( int i = len; i > 0; --i)
{
if ( a[i] < b[i] )
{
sign = -1;
return sign;
}
}
}
return sign;
}
void add( BigN a, BigN b)
{
int len = a[0] > b[0] ? a[0] : b[0];
int carry = 0;
for( int i = 1; i <= len; ++i )
{
int newdig = a[i] + b[i] + carry;
if( newdig > 9 )
{
result[i] = newdig % 10;
carry = 1;
}
else
{
result[i] = newdig;
carry = 0;
}
++result[0];
}
if(carry)
result[++result[0]] = carry;
}
void sub(BigN a, BigN b)
{
int len = a[0] > b[0] ? a[0] : b[0];
int j = 1;
for(int i = 1; i <= len; ++i)
{
if( a[i] < b[i] )
{
int k = i;
while(a[++k] == 0)
;
a[k]--;
k--;
while(k > i)
{
a[k] = 9;
k--;
}
a[i] = a[i] + 10;
result[j] = a[i] - b[i];
}
else
{
result[j] = a[i] - b[i];
}
j++;
result[0]++;
}
while( (result[0] > 1) && ( result[result[0]] == 0))
--result[0];
}
void solve()
{
int sign = 0;
if( a_flag && !b_flag)
{
sign = -1;
add(a, b);
}
else if( !a_flag && !b_flag)
{
sign = compare();
if(sign < 0)
sub(b, a);
else
sub(a, b);
}
else if( !a_flag && b_flag)
{
sign = 0;
add(a, b);
}
else if( a_flag && b_flag )
{
if( compare() == 0 )
{
sign = -1;
sub(a, b);
}
else
{
sign = 0;
sub(b, a);
}
}
if(sign < 0)
cout << '-';
print(result);
}
int main()
{
int test;
istringstream ss;
cin >> test;
cin.ignore();
while(test--)
{
a_flag = b_flag = false;
string lstr, a_str, b_str;
getline(cin, lstr);
ss.str(lstr);
ss >> a_str;
ss >> b_str;
read_big(a_str, b_str);
solve();
lstr.clear();
ss.clear();
a_str.clear();
b_str.clear();
a_flag = b_flag = false;
memset(&a, 0, sizeof(a));
memset(&b, 0, sizeof(b));
memset(&result, 0, sizeof(result));
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGludCBCaWdOWzEwMDA5XTsKCkJpZ04gYTsKQmlnTiBiOwpCaWdOIHJlc3VsdDsKYm9vbCBhX2ZsYWcsIGJfZmxhZzsKCnZvaWQgcHJpbnQoQmlnTiAmbnVtKQp7CiAgICAgICAgZm9yKGludCBpID0gbnVtWzBdOyBpID4gMDsgLS1pKQogICAgICAgICAgICAgICAgY291dCA8PCBudW1baV07CiAgICAgICAgY291dCA8PCBlbmRsOwp9Cgp2b2lkIHJlYWRfYmlnKHN0cmluZyAmc3RyMSwgc3RyaW5nICZzdHIyKQp7CgogICAgICAgIGlmKCBzdHIxWzBdID09ICctJykKICAgICAgICAgICAgICAgIGFfZmxhZyA9IHRydWU7CiAgICAgICAgaWYoIHN0cjJbMF0gPT0gJy0nKQogICAgICAgICAgICAgICAgYl9mbGFnID0gdHJ1ZTsKCiAgICAgICAgaWYoIWFfZmxhZykKICAgICAgICB7CiAgICAgICAgICAgICAgICBhWzBdID0gc3RyMS5zaXplKCk7CiAgICAgICAgICAgICAgICBmb3IoaW50IGkgPSAxOyBpIDw9IGFbMF07ICsraSkKICAgICAgICAgICAgICAgICAgICAgICAgYVtpXSA9IHN0cjFbYVswXS1pXSAtICcwJzsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgICAgIGFbMF0gPSBzdHIxLnNpemUoKTsKICAgICAgICAgICAgICAgIGZvcihpbnQgaSA9IDE7IGkgPCBhWzBdOyArK2kpCiAgICAgICAgICAgICAgICAgICAgICAgIGFbaV0gPSBzdHIxW2FbMF0taV0gLSAnMCc7CiAgICAgICAgfQoKICAgICAgICB3aGlsZSggKGFbMF0gPiAxKSAmJiAoIGFbYVswXV0gPT0gMCkgKQogICAgICAgICAgICAgICAgLS1hWzBdOwoKICAgICAgICAKICAgICAgICBpZighYl9mbGFnKQogICAgICAgIHsKICAgICAgICAgICAgICAgIGJbMF0gPSBzdHIyLnNpemUoKTsKICAgICAgICAgICAgICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gYlswXTsgKytpKQogICAgICAgICAgICAgICAgICAgICAgICBiW2ldID0gc3RyMltiWzBdLWldIC0gJzAnOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICAgICAgYlswXSA9IHN0cjIuc2l6ZSgpOwogICAgICAgICAgICAgICAgZm9yKGludCBpID0gMTsgaSA8IGJbMF07ICsraSkKICAgICAgICAgICAgICAgICAgICAgICAgYltpXSA9IHN0cjJbYlswXS1pXSAtICcwJzsKICAgICAgICB9CgogICAgICAgIHdoaWxlKCAoYlswXSA+IDEpICYmICggYltiWzBdXSA9PSAwKSApCiAgICAgICAgICAgICAgICAtLWJbMF07CgogICAgICAgIAp9CgppbnQgY29tcGFyZSh2b2lkKQp7CiAgICAgICAgaW50IHNpZ24gPSAwOwogICAgICAgIGlmICggYVswXSA8IGJbMF0gKQogICAgICAgIHsKICAgICAgICAgICAgICAgIHNpZ24gPSAtMTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoIGFbMF0gPT0gYlswXSApCiAgICAgICAgewogICAgICAgICAgICAgICAgaW50IGxlbiA9IGFbMF07CiAgICAgICAgICAgICAgICBmb3IoIGludCBpID0gbGVuOyBpID4gMDsgLS1pKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGFbaV0gPCBiW2ldICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ24gPSAtMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2lnbjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gc2lnbjsKfQoKdm9pZCBhZGQoIEJpZ04gYSwgQmlnTiBiKQp7CiAgICAgICAgaW50IGxlbiA9IGFbMF0gPiBiWzBdID8gYVswXSA6IGJbMF07CiAgICAgICAgaW50IGNhcnJ5ID0gMDsKICAgICAgICBmb3IoIGludCBpID0gMTsgaSA8PSBsZW47ICsraSApCiAgICAgICAgewogICAgICAgICAgICAgICAgaW50IG5ld2RpZyA9IGFbaV0gKyBiW2ldICsgY2Fycnk7CiAgICAgICAgICAgICAgICBpZiggbmV3ZGlnID4gOSApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtpXSA9IG5ld2RpZyAlIDEwOwogICAgICAgICAgICAgICAgICAgICAgICBjYXJyeSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtpXSA9IG5ld2RpZzsKICAgICAgICAgICAgICAgICAgICAgICAgY2FycnkgPSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKytyZXN1bHRbMF07CiAgICAgICAgfQoKICAgICAgICBpZihjYXJyeSkKICAgICAgICAgICAgICAgIHJlc3VsdFsrK3Jlc3VsdFswXV0gPSBjYXJyeTsKfQoKCnZvaWQgc3ViKEJpZ04gYSwgQmlnTiBiKQp7CiAgICAgICAgaW50IGxlbiA9IGFbMF0gPiBiWzBdID8gYVswXSA6IGJbMF07CiAgICAgICAgaW50IGogPSAxOwogICAgICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbGVuOyArK2kpCiAgICAgICAgewogICAgICAgICAgICAgICAgaWYoIGFbaV0gPCBiW2ldICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW50IGsgPSBpOwogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShhWysra10gPT0gMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CiAgICAgICAgICAgICAgICAgICAgICAgIGFba10tLTsKICAgICAgICAgICAgICAgICAgICAgICAgay0tOwogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShrID4gaSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFba10gPSA5OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGstLTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBhW2ldID0gYVtpXSArIDEwOwogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbal0gPSBhW2ldIC0gYltpXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2pdID0gYVtpXSAtIGJbaV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBqKys7CiAgICAgICAgICAgICAgICByZXN1bHRbMF0rKzsKICAgICAgICB9CiAgICAgICAgd2hpbGUoIChyZXN1bHRbMF0gPiAxKSAmJiAoIHJlc3VsdFtyZXN1bHRbMF1dID09IDApKQogICAgICAgICAgICAgICAgLS1yZXN1bHRbMF07Cn0KCnZvaWQgc29sdmUoKQp7CiAgICAgICAgaW50IHNpZ24gPSAwOwogICAgICAgIGlmKCBhX2ZsYWcgJiYgIWJfZmxhZykKICAgICAgICB7CiAgICAgICAgCiAgICAgICAgICAgICAgICBzaWduID0gLTE7CiAgICAgICAgICAgICAgICBhZGQoYSwgYik7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoICFhX2ZsYWcgJiYgIWJfZmxhZykKICAgICAgICB7CiAgICAgICAgCiAgICAgICAgICAgICAgICBzaWduID0gY29tcGFyZSgpOwogICAgICAgICAgICAgICAgaWYoc2lnbiA8IDApCiAgICAgICAgICAgICAgICAgICAgICAgIHN1YihiLCBhKTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgc3ViKGEsIGIpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCAhYV9mbGFnICYmIGJfZmxhZykKICAgICAgICB7CiAgICAgICAgCiAgICAgICAgICAgICAgICBzaWduID0gMDsKICAgICAgICAgICAgICAgIGFkZChhLCBiKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggYV9mbGFnICYmIGJfZmxhZyApCiAgICAgICAgewogICAgICAgIAogICAgICAgICAgICAgICAgaWYoIGNvbXBhcmUoKSA9PSAwICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiA9IC0xOwogICAgICAgICAgICAgICAgICAgICAgICBzdWIoYSwgYik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ24gPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBzdWIoYiwgYSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAKICAgICAgICBpZihzaWduIDwgMCkKICAgICAgICAgICAgICAgIGNvdXQgPDwgJy0nOwogICAgICAgIHByaW50KHJlc3VsdCk7Cgp9CgppbnQgbWFpbigpCnsKICAgICAgICBpbnQgdGVzdDsKICAgICAgCiAgICAgICAgaXN0cmluZ3N0cmVhbSBzczsKICAgICAgICBjaW4gPj4gdGVzdDsKICAgICAgICBjaW4uaWdub3JlKCk7CiAgICAgICAgd2hpbGUodGVzdC0tKQogICAgICAgIHsKCiAgICAgICAgICAgICAgICBhX2ZsYWcgPSBiX2ZsYWcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHN0cmluZyBsc3RyLCBhX3N0ciwgYl9zdHI7CiAgICAgICAgICAgICAgICBnZXRsaW5lKGNpbiwgbHN0cik7CgogICAgICAgICAgICAgICAgc3Muc3RyKGxzdHIpOwoKICAgICAgICAgICAgICAgIHNzID4+IGFfc3RyOwogICAgICAgICAgICAgICAgc3MgPj4gYl9zdHI7CgogICAgICAgICAgICAgICAgcmVhZF9iaWcoYV9zdHIsIGJfc3RyKTsKCiAgICAgICAgICAgICAgICBzb2x2ZSgpOwoKICAgICAgICAgICAgICAgIGxzdHIuY2xlYXIoKTsKICAgICAgICAgICAgICAgIHNzLmNsZWFyKCk7CiAgICAgICAgICAgICAgICBhX3N0ci5jbGVhcigpOwogICAgICAgICAgICAgICAgYl9zdHIuY2xlYXIoKTsKCiAgICAgICAgICAgICAgICBhX2ZsYWcgPSBiX2ZsYWcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIG1lbXNldCgmYSwgMCwgc2l6ZW9mKGEpKTsKICAgICAgICAgICAgICAgIG1lbXNldCgmYiwgMCwgc2l6ZW9mKGIpKTsKICAgICAgICAgICAgICAgIG1lbXNldCgmcmVzdWx0LCAwLCBzaXplb2YocmVzdWx0KSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAwOwp9Cg==
MjkKMDAwMDIgMDkKMDA5IDAwMgo5MDAgMjAwCjAgMAoxMCAzCjEwMDAgOQoxMDAwIDk5OQo0IDkKMCA4CjUgMgoxMDAwIDIwMDAwCjk5OSA5OTcKMTY1NTUgMTcwMDAKMTAwMDAgMQoxIDEwMDAwMAoyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQoyMDAwNCA5OTkKMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkKLTEgMjAKMjAgLTUKMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKLTUwMCAxMDAwCi0xMDAwIDUwMAotNTAwIC0xMDAwCi0xMDAwIC01MDAKNTAwIC0xMDAwCjEwMDAgLTUwMAo1MDAgMTAwMAoxMDAwIDUwMAo=
29
00002 09
009 002
900 200
0 0
10 3
1000 9
1000 999
4 9
0 8
5 2
1000 20000
999 997
16555 17000
10000 1
1 100000
2000000000000000000000000000000000000000000000000 100000000000000000000000000000000000000000000001
20004 999
100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 9999999999999999999999999999999999999999
-1 20
20 -5
2000000000000000000000000000000000000000000000000 100000000000000000000000000000000000000000000001
-500 1000
-1000 500
-500 -1000
-1000 -500
500 -1000
1000 -500
500 1000
1000 500