/*A*B*/
#include<cstdio>
#include<string.h>
#include<malloc.h>
#include<stdlib.h>
#define M 1000000
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
char *a,*b;
a=(char*)malloc(sizeof(char)*M);
b=(char*)malloc(sizeof(char)*M);
scanf("%s%s",a,b);
int i,j,k,alen,blen;
int *c;
char *ret;
alen=strlen(a);
blen=strlen(b);
c=(int*)malloc(sizeof(int)*(alen+blen));
for(i=0;i<alen+blen;i++)
c[i]=0;
for(i=0;i<alen;i++)
for(j=0;j<blen;j++)
c[i+j+1]+=(a[i]-'0')*(b[i]-'0');
for(i=alen+blen-1;i>=0;i--)
if(c[i]>9)
{
c[i-1]+=c[i]/10;
c[i]%=10;
}
i=0;
while(c[i]==0)//跳过头部的0
i++;
ret=(char*)malloc(sizeof(char)*(alen+blen));
for(j=0;i<alen+blen;i++,j++)
ret[j]=c[i]+'0';
ret[j]='\0';
free(a);
free(b);
free(c);
for(i=0;i<alen+blen;i++)
printf("%c",ret[i]);
printf("\n");
free(ret);
}
return 0;
}
/*
#include<cstdio>
#include<string.h>
#include<malloc.h>
#include<stdlib.h>
#define M 1000000
void mul(char*a,char*b)
{
int i,j,k,alen,blen;
int *c;
char *ret;
alen=strlen(a);
blen=strlen(b);
c=(int*)malloc(sizeof(int)*(alen+blen));
for(i=0;i<alen+blen;i++)
c[i]=0;
for(i=0;i<alen;i++)
for(j=0;j<blen;j++)
c[i+j+1]+=(a[i]-'0')*(b[i]-'0');
for(i=alen+blen-1;i>=0;i--)
{
if(c[i]>9)
{
c[i-1]+=c[i]/10;
c[i]%=10;
}
}
i=0;
while(c[i]==0)//跳过头部的0
i++;
ret=(char*)malloc(sizeof(char)*(alen+blen));
for(j=0;i<alen+blen;i++,j++)
ret[j]=c[i]+'0';
ret[j]='\0';
free(c);
for(i=0;i<alen+blen;i++)
printf("%c",ret[i]);
printf("\n");
free(ret);
}
int main()
{
char *a,*b;
a=(char*)malloc(sizeof(char)*M);
b=(char*)malloc(sizeof(char)*M);
int T;
scanf("%d",&T);
while(T--)
{
scanf("%s%s",a,b);
mul(a,b);
free(a);
free(b);
}
return 0;
}
*/