#include <iostream>
using namespace std;
int Max(int a, int b);
/*将字符串转化为int[]数组,然后倒排,输入的两个数长度不一致的情况,将短的前面补零,便于相加*/
int main()
{
int k;
cin>>k;
int i=1;
int j=0;
while(i<=k)
{
char a[1024],b[1024];
cin>>a;
cin>>b;
int la=strlen(a);
int lb=strlen(b);
int aa[1024]={0};
int bb[1024]={0};
int mid[1024]={0};
//将字符型转换为整形数组
for( j=la;j>=1;j--)
{
aa[la-j]=int(a[j-1])-48;// 也可直接用a[j]-'0'
}
for( j=lb;j>=1;j--)
{
bb[lb-j]=int(b[j-1])-48;
}
if(la>lb)
{
for(int j=lb;j<la;j++)
bb[j]=0;
}
if(la<lb)
{
for(int j=la;j<lb;j++)
a[j]=0;
}
int s=0;
int length = Max(la,lb);
for( j=0;j<length;j++)
{
int result=aa[j]+bb[j]+s;
mid[j]=(result>=10)?(result%10):result;
s=result>=10?1:0;
}
length = length-1;
if(s==1)
{
length=length+1;
mid[length]=1;
}
cout<<"Case "<<i<<":"<<endl;
cout<<a<<" + "<<b<< " = ";
for( j=length;j>=0;j--)
{
cout<<mid[j];
}
cout<<endl;
if(i!=k)
cout<<"\n";
i++;
}
system("Pause");
return 0;
}
int Max(int a,int b)
{
return (a>b)?a:b;
}