#include<iostream>
using namespace std;
#define MAX 10000
char m[MAX];
char tmp[MAX];
void multip(char *a,char *b)
{
int j,k,i,d,h=0,e;
for(i=strlen(a)-1;i>=0;i--)
{
int temp=a[i]-'0';//取乘数的末尾一位
e=0;
for(k=0,j=strlen(b)-1;j>=0;j--,k++)
{
d=(b[j]-'0')*temp+m[k+h]-'0'+e;
e=d/10;//e用来保存进位的数值
m[k+h]=d%10+'0';//保存进位后余下的数
}
while(e)//最后一个进位不为0
{
d=m[k+h]-'0'+e;
e=d/10;
m[k+h]=d%10+'0';
}
h++;
}
for(i=MAX-1;i>=0&&m[i]=='0';i--);
for(j=0;j<MAX;j++)
{
tmp[j]=m[i-j];
}
tmp[j]=0;
cout<<tmp;
}
int main()
{
char a[1000],b[1000];
memset(m,'0',sizeof(m));
memset(tmp,'0',sizeof(tmp));
cin>>a;
cin>>b;
if(strlen(a)>strlen(b))
{
multip(b,a);
}
else
{
multip(a,b);
}
return 0;
}
using namespace std;
#define MAX 10000
char m[MAX];
char tmp[MAX];
void multip(char *a,char *b)
{
int j,k,i,d,h=0,e;
for(i=strlen(a)-1;i>=0;i--)
{
int temp=a[i]-'0';//取乘数的末尾一位
e=0;
for(k=0,j=strlen(b)-1;j>=0;j--,k++)
{
d=(b[j]-'0')*temp+m[k+h]-'0'+e;
e=d/10;//e用来保存进位的数值
m[k+h]=d%10+'0';//保存进位后余下的数
}
while(e)//最后一个进位不为0
{
d=m[k+h]-'0'+e;
e=d/10;
m[k+h]=d%10+'0';
}
h++;
}
for(i=MAX-1;i>=0&&m[i]=='0';i--);
for(j=0;j<MAX;j++)
{
tmp[j]=m[i-j];
}
tmp[j]=0;
cout<<tmp;
}
int main()
{
char a[1000],b[1000];
memset(m,'0',sizeof(m));
memset(tmp,'0',sizeof(tmp));
cin>>a;
cin>>b;
if(strlen(a)>strlen(b))
{
multip(b,a);
}
else
{
multip(a,b);
}
return 0;
}