#include <stdio.h>
#include <stdlib.h>
#define M 1200
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
char a[10000][2000],result[10000][2000],mid[2000];
int main(int argc, char *argv[]) {
int line,i,j=0,len1,len2,sum[2000],m,k,flag,pos,pp;
scanf("%d",&line);
for(i=0;i<line;i++){
scanf("%s",a[i]);
}
for(i=0;i<line;i++){
for(j=0;j<1200;j++){
sum[j]=0;
}
j=0;
len1=0;
len2=0;
while(a[i][j]!='+'&&a[i][j]!='-'){
len1++;
j++;
}
m=j;
//printf("%d %d",len1,j);
j++;
while(a[i][j]!='\0'){
len2++;
j++;
}
//printf("%d %d %d",len1,len2,j);
if(a[i][m]=='+'){
if(len1>len2){
for(k=0;k<len2;k++){
sum[k]=a[i][m-1]-48+a[i][j-1]-48;
if(sum[k]>=10){
a[i][m-2]++;
sum[k]=sum[k]-10;
}
m--;
j--;
}
for(k=len2;k<len1-1;k++){
sum[k]=a[i][m-1]-48;
if(sum[k]>=10){
a[i][m-2]++;
sum[k]=sum[k]-10;
}
m--;
}
if(a[i][m-1]>=58) {
printf("1");
sum[k]=0;
}
else{
sum[k]=a[i][m-1]-48;
}
/*/for(flag=0;flag<len1;flag++){
printf("%d\n",sum[flag]);
}/*/
flag=len1;
for(j=0;j<len1;j++){
result[i][j]=sum[flag-1]+48;//错在len1--的话判断条件会不断改变
flag--;
}
for(j=0;j<len1;j++){
printf("%c",result[i][j]);
}
printf("\n");
/*/for(j=0;j<len1;j++){
printf("%c",sum[len1-1-j]+48);
}
printf("\n");/*/
}
else if(len1<len2){
for(pp=0;pp<=len1+len2;pp++){
mid[pp]=a[i][pp];
}
for(pp=0;pp<len2;pp++){
a[i][pp]=mid[pp+len1+1];
}
for(pp=len2+1;pp<=len1+len2;pp++){
a[i][pp]=mid[pp-len2-1];
}
a[i][len2]='+';
/*/for(pp=0;pp<=len1+len2;pp++){
printf("%c",a[i][pp]);
}/*/
j=0;
len1=0;
len2=0;
while(a[i][j]!='+'&&a[i][j]!='-'){
len1++;
j++;
}
m=j;
//printf("%d %d",len1,j);
j++;
while(a[i][j]!='\0'){
len2++;
j++;
}
//printf("%d %d %d",len1,len2,j);
for(k=0;k<len2;k++){
sum[k]=a[i][m-1]-48+a[i][j-1]-48;
if(sum[k]>=10){
a[i][m-2]++;
sum[k]=sum[k]-10;
}
m--;
j--;
}
for(k=len2;k<len1-1;k++){
sum[k]=a[i][m-1]-48;
if(sum[k]>=10){
a[i][m-2]++;
sum[k]=sum[k]-10;
}
m--;
}
if(a[i][m-1]>=58) {
printf("1");
sum[k]=0;
}
else{
sum[k]=a[i][m-1]-48;
}
/*/for(flag=0;flag<len1;flag++){
printf("%d\n",sum[flag]);
}/*/
flag=len1;
for(j=0;j<len1;j++){
result[i][j]=sum[flag-1]+48;//错在len1--的话判断条件会不断改变
flag--;
}
for(j=0;j<len1;j++){
printf("%c",result[i][j]);
}
printf("\n");
}
else if(len1==len2){
if(len1==1){
printf("%d\n",a[i][0]+a[i][len1+1]-96);
}
else {
pos=m;
for(k=0;k<len2-1;k++){
sum[k]=a[i][m-1]-48+a[i][j-1]-48;
if(sum[k]>=10){
a[i][m-2]++;
sum[k]=sum[k]-10;
}
m--;
j--;
}
if((a[i][0]-48+a[i][pos+1]-48)<10){
sum[len1-1]=a[i][0]-48+a[i][pos+1]-48;
flag=len1;
for(j=0;j<len1;j++){
result[i][j]=sum[flag-1]+48;
flag--;
}
for(j=0;j<len1;j++){
printf("%c",result[i][j]);
}
printf("\n");
}
else if((a[i][0]-48+a[i][pos+1]-48)>=10){
sum[len1-1]=a[i][0]-48+a[i][pos+1]-48-10;//为啥????????
sum[len1]=1;
flag=len1;
for(j=0;j<=len1;j++){
result[i][j]=sum[flag]+48;
flag--;
}
for(j=0;j<=len1;j++){
printf("%c",result[i][j]);
}
printf("\n");
}
}
}
}
if(a[i][m]=='-'){
if(len1>len2){
for(k=0;k<len2;k++){
sum[k]=a[i][m-1]-a[i][j-1];
if(sum[k]<0){
a[i][m-2]--;
sum[k]=sum[k]+10;
}
m--;
j--;
}
if((a[i][m-1]-48)<0){
sum[len2]=9;
a[i][m-2]--;
for(k=len2+1;k<len1;k++){
sum[k]=a[i][m-2]-48;
m--;
}
if(sum[len1-1]==0){
flag=len1;
for(j=0;j<len1-1;j++){
result[i][j]=sum[flag-2]+48;
flag--;
}
for(j=0;j<len1-1;j++){
printf("%c",result[i][j]);
}
printf("\n");
}
else{
flag=len1;
for(j=0;j<len1;j++){
result[i][j]=sum[flag-1]+48;
flag--;
}
for(j=0;j<len1;j++){
printf("%c",result[i][j]);
}
printf("\n");
}
}
else if((a[i][m-1]-48)==0&&len1==len2+1){
flag=len1;
for(j=0;j<len1-1;j++){
result[i][j]=sum[flag-2]+48;
flag--;
}
for(j=0;j<len1-1;j++){
printf("%c",result[i][j]);
}
printf("\n");
}
else{
for(k=len2;k<len1;k++){
sum[k]=a[i][m-1]-48;
m--;
}
flag=len1;
for(j=0;j<len1;j++){
result[i][j]=sum[flag-1]+48;
flag--;
}
for(j=0;j<len1;j++){
printf("%c",result[i][j]);
}
printf("\n");
}
}
else if(len1<len2){
for(pp=0;pp<=len1+len2;pp++){
mid[pp]=a[i][pp];
}
for(pp=0;pp<len2;pp++){
a[i][pp]=mid[pp+len1+1];
}
for(pp=len2+1;pp<=len1+len2;pp++){
a[i][pp]=mid[pp-len2-1];
}
a[i][len2]='+';
/*/for(pp=0;pp<=len1+len2;pp++){
printf("%c",a[i][pp]);
}/*/
len1=0;
len2=0;
j=0;//赋初值!!!!!!
while(a[i][j]!='+'){
len1++;
j++;
}
m=j;
j++;
while(a[i][j]!='\0'){
len2++;
j++;
}
//printf("%d %d %d %d",len1,len2,m,j);
for(k=0;k<len2;k++){
sum[k]=a[i][m-1]-a[i][j-1];
if(sum[k]<0){
a[i][m-2]--;
sum[k]=sum[k]+10;
}
m--;
j--;
}
if((a[i][m-1]-48)<0){
sum[len2]=9;
a[i][m-2]--;
for(k=len2+1;k<len1;k++){
sum[k]=a[i][m-2]-48;
m--;
}
if(sum[len1-1]==0){
flag=len1;
for(j=0;j<len1-1;j++){
result[i][j]=sum[flag-2]+48;
flag--;
}
printf("-");
for(j=0;j<len1-1;j++){
printf("%c",result[i][j]);
}
printf("\n");
}
else{
flag=len1;
for(j=0;j<len1;j++){
result[i][j]=sum[flag-1]+48;
flag--;
}
printf("-");
for(j=0;j<len1;j++){
printf("%c",result[i][j]);
}
printf("\n");
}
}
else if((a[i][m-1]-48)==0&&len1==len2+1){
flag=len1;
for(j=0;j<len1-1;j++){
result[i][j]=sum[flag-2]+48;
flag--;
}
printf("-");
for(j=0;j<len1-1;j++){
printf("%c",result[i][j]);
}
printf("\n");
}
else{
for(k=len2;k<len1;k++){
sum[k]=a[i][m-1]-48;
m--;
}
flag=len1;
for(j=0;j<len1;j++){
result[i][j]=sum[flag-1]+48;
flag--;
}
printf("-");
for(j=0;j<len1;j++){
printf("%c",result[i][j]);
}
printf("\n");
}
}
else if(len1==len2){
pos=m;
flag=0;
for(k=0;k<len1;k++){
if(a[i][k]>a[i][k+len1+1]){
flag=1;
break;
}
else if(a[i][k]<a[i][k+len1+1]){
flag=2;
break;
}
}
//printf("%d",flag);
switch(flag){
case 0:printf("0\n");break;
case 1:{
for(k=0;k<len2;k++){
sum[k]=a[i][m-1]-a[i][j-1];
if(sum[k]<0){
a[i][m-2]--;
sum[k]=sum[k]+10;
}
m--;
j--;
}
flag=len1;
while(sum[flag-1]==0){
flag--;
len1--;
}//上面也可以这样处理吧
for(j=0;j<len1;j++){
result[i][j]=sum[flag-1]+48;
flag--;
}
for(j=0;j<len1;j++){
printf("%c",result[i][j]);
}
printf("\n");
break;
}
case 2:{
for(pp=0;pp<=len1+len2;pp++){
mid[pp]=a[i][pp];
}
for(pp=0;pp<len2;pp++){
a[i][pp]=mid[pp+len1+1];
}
for(pp=len2+1;pp<=len1+len2;pp++){
a[i][pp]=mid[pp-len2-1];
}
a[i][len2]='-';
/*/for(pp=0;pp<=len1+len2;pp++){
printf("%c",a[i][pp]);
}/*/
len1=0;
len2=0;
j=0;//赋初值!!!!!!
while(a[i][j]!='-'){
len1++;
j++;
}
m=j;
j++;
while(a[i][j]!='\0'){
len2++;
j++;
}
for(k=0;k<len2;k++){
sum[k]=a[i][m-1]-a[i][j-1];
if(sum[k]<0){
a[i][m-2]--;
sum[k]=sum[k]+10;
}
m--;
j--;
}
flag=len1;
while(sum[flag-1]==0){
flag--;
len1--;
}//上面也可以这样处理吧
for(j=0;j<len1;j++){
result[i][j]=sum[flag-1]+48;
flag--;
}
printf("-");
for(j=0;j<len1;j++){
printf("%c",result[i][j]);
}
printf("\n");
break;
break;
}
}
}
}
}
return 0;
}