#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string a,b;
string num;
char pp[15][15];//接收乘法运算后的数据
char ch;
for(int i=0;i<20;i++)
{
ch=getchar();
if(ch=='\n')
break;
else if(ch=='0'||ch=='1')
{
ch-='0';
a.append(1,ch);
}
else
{
}
}
for(int i=0;i<20;i++)//获取字符串,除0 1 外,其他字符无法输入到运算字符串中
{
ch=getchar();
if(ch=='\n')
break;
else if(ch=='0'||ch=='1')
{ ch-='0';
b.append(1,ch);
}
else
{
}
}
if(a.length()!=b.length())//判断长度函数
{
cout<<"not the same length";
exit(0);
}
for(int i=0;i<15;i++)//乘法运算块
{
for(int j=0;j<15;j++)
{
pp[i][j]=0;
}
}
int q=0,s=(2*b.length()-1),p=0,l=(2*b.length()-1);
for(int i=a.length()-1;i>=0;i--,q++)//a做最下面的数;
{
s=l;
l--;
for(int j=b.length()-1;j>=0;j--,s--)
{
pp[q][s]=a[i]*b[j];
}
}
char ss=0;
for(int i=(2*b.length()-1);i>=0;i--)//a做最下面的数;,累加块
{ ss=0;
for(int j=0;j<b.length();j++)
{
ss+=pp[j][i];
if(ss>=2)
{
if(ss%2==0)
{
pp[j][i-1]+=ss/2;
ss=0;
}
if(ss%2==1)
{
pp[j][i-1]+=ss/2;
ss=1;
}
}
}
ss+='0';
num.append(1,ss);
}
reverse(num.begin(),num.end());//字符串倒序函数;
cout<<num;
return 0;
}