#include<bits/stdc++.h>
using namespace std;
const int LEN = 250;
string s1;
int p; //低精度数字
int a[LEN],c[LEN]; //a[0]、c[0]都用来存长度;
void rev(string s,int d[]) {
d[0]= s.size(); //d[0]表示长度
for (int i = 0; i < d[0]; i++)
d[d[0] - i] = s[i] - '0'; //从d[1]开始逆序
}
void mul(int a[],int p,int c[]) //计算c=a*p
{
c[0]=a[0]; //做高精度的位数 次乘法;
int x=0,t;//x表示进位,t存储计算结果
for(int i=1;i<=c[0];i++)
{
t=x+p*a[i]; //p为乘数,求出每位上的乘积
x=t/10; //求出进位数字加到前一位
c[i]=t%10; //求出每位上数
}
while(x){ // 直到x为0为止;
//++c[0];
c[++c[0]]=x%10; // 最高位保留进位的个位,长度加1
x/=10; //x缩小10倍
}
}
int main(){
cin>>s1>>p;
rev(s1,a);
mul(a,p,c);
while(c[c[0]]==0&&c[0]>1) c[0]--;//防止低精度数为0;
for(int i=c[0];i>=1;i--){ //从高位开始输出
cout<<c[i];
}
return 0;
}