#include <stdio.h>
#include <string.h>
#define MAX 220
int a1[MAX], a2[MAX], a3[MAX*2]; //a3的范围要比a1,a2的大点,因为乘法可能乘后溢出
char str1[MAX], str2[MAX];
int main()
{
while(scanf("%s%s",str1,str2))
{
if(strcmp(str1,"0")==0&&strcmp(str2,"0")==0) //两者为0则退出****并且要注意比较是两个字符串,所以0不能写成'0',要不然出错,应写成"0"
break;
memset(a1,0,sizeof(a1));
memset(a2,0,sizeof(a2));
memset(a3,0,sizeof(a3));
int i, j,len1, len2;
len1=strlen(str1);
len2=strlen(str2);
for(i=len1-1,j=0;i>=0;i--) //字符转换成数字
{
a1[j++]=str1[i]-'0';
}
for(i=len2-1,j=0;i>=0;i--)
{
a2[j++]=str2[i]-'0';
}
for(i=0;i<len2;i++) //把每次成绩和保存在a3中
{
for(j=0;j<len1;j++)
{
a3[i+j]+=a2[i]*a1[j]; //一个数的第i 位和另一个数的第j 位相乘所得的数,一定是要累加到结果的第i+j 位上。这里i, j 都是从右往左,从0 开始数。
}
}
for(i=0;i<MAX*2;i++) //处理进位的问题
{
a3[i+1]+=a3[i]/10;
a3[i]=a3[i]%10;
}
for(i=MAX*2-1;i>=0;i--)
{
if(i>=0&&a3[i]!=0)
{
for(;i>=0;i--)
printf("%d",a3[i]);
printf("\n");
}
else if(i==0&&a3[i]==0)
printf("0\n");
}
}
return 0;
}