= =、每次这种题目说只有40位 然而要开到100位,心里总是一万匹草泥马在奔腾;
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <math.h>
#include <algorithm>
using namespace std;
#define LL long long
const double pi = acos(-1.0);
#define Len 200005
#define mod 19999997
const int INF = 0x3f3f3f3f;
#define exp 1e-6
int s1[200];
int s2[200];
int tep[200];
int ans[200];
char st1[200];
char st2[200];
void Init()
{
    memset(ans,0,sizeof(ans));
    memset(tep,sizeof(tep));
    memset(s1,sizeof(s1));
    memset(s2,sizeof(s2));
}
int init_st1()
{
    int len,num;
    len=strlen(st1);
    num=0;
    for(int i=len-1;i>=0;i--)
    {
        s1[num++]=st1[i]-'0';       
    }
    return num;
}
int init_st2()
{
    int len,num;
    len=strlen(st2);
    num=0;
    for(int i=len-1;i>=0;i--)
    {
        s2[num++]=st2[i]-'0';
    }
    return num;
}
void add_solve()
{
    int x,f=0;
    int num=0;
    for(int i=0;i<110;i++)
    {
        x=ans[i]+tep[i];
        x+=f;
        f=x/10;
        ans[num++]=x%10;
    }
    if(f)
        ans[num++]+=f;
}
void mul_solve(int num,int len,int n)
{
    int x;
    memset(tep,sizeof(tep));
    int f=0;
    for(int i=0;i<len;i++)
    {
        x=s1[i]*n;
        x+=f;
        f=x/10;
        tep[num++]=x%10;
    }
    if(f)
        tep[num++]+=f;
    add_solve();
}
int main()
{
    scanf("%s%s",st1,st2);
    Init();
    int L1=init_st1();
    int L2=init_st2();
    for(int i=0;i<L2;i++)
    {
        mul_solve(i,L1,s2[i]);
    }
    int k;
    int flag=0;
    for(int i=150;i>=0;i--)
    {
        if(ans[i])
        {
            flag=1;
            k=i;
            break;
        }
    }
    if(!flag)
    {
        printf("0");
        return 0;
    }
    for(int i=k;i>=0;i--)
    {
        printf("%d",ans[i]);    
    }
    return 0;
}