#include <bits/stdc++.h>
using namespace std;
int sudar(int x, int y, int BrCifaraX, int BrCifaraY, int cifra)
{
	if (x>y)
	{
		return x;
	}
	if (y>x)
	{
		return y;
	}
	if (x==y)
	{
		if ((cifra<=BrCifaraX)&&(cifra<=BrCifaraY))
		{
			if (x==0)
			{
				return 10;
			}
			else
			{
				return 11*x;
			}
		}
		if (cifra>BrCifaraX)
		{
			return y;
		}
		if (cifra>BrCifaraY)
		{
			return x;
		}
	}
}
int main()
{
	int x, y;
	cin>>x>>y;
	int BrCifaraX=0, BrCifaraY=0;
	int x1=x, y1=y;
	int CifreX[10];
	int CifreY[10];
	for (int i=0; (x1>0)||(y1>0); i++)
	{
		if (x1>0)
		{
			BrCifaraX++;
		}
		if (y1>0)
		{
			BrCifaraY++;
		}
		CifreX[i]=x1%10;
		CifreY[i]=y1%10;
		x1/=10;
		y1/=10;
	}
	long long xy=0;
	int CifreXY[10];
	if (BrCifaraX>BrCifaraY)
	{
		for (int i=0; i<BrCifaraX; i++)
		{
			CifreXY[i]=sudar(CifreX[i], CifreY[i], BrCifaraX, BrCifaraY, i+1);
		}
	}
	else
	{
		for (int i=0; i<BrCifaraY; i++)
		{
			CifreXY[i]=sudar(CifreX[i], CifreY[i], BrCifaraX, BrCifaraY, i+1);
		}
	}
	int BrCifaraXY=0;
	if (BrCifaraX>BrCifaraY)
	{
		for (int i=0; i<BrCifaraX; i++)
		{
			if (CifreXY[i]<10)
			{
				BrCifaraXY++;
			}
			else
			{
				BrCifaraXY+=2;
			}
		}
		for (int i=BrCifaraX-1, j=1; i>=0; i-=1)
		{
			if (CifreXY[i]==10)
			{
				xy=xy;
			}
			else
			{
				xy+=CifreXY[i]*pow(10, BrCifaraXY-j);
			}
			if (CifreXY[i-1]<10)
			{
				j++;
			}
			else
			{
				j+=2;
			}
		}
	}
	else
	{
		for (int i=0; i<BrCifaraY; i++)
		{
			if (CifreXY[i]<10)
			{
				BrCifaraXY++;
			}
			else
			{
				BrCifaraXY+=2;
			}
		}
		for (int i=BrCifaraY-1, j=1; i>=0; i-=1)
		{
			if (CifreXY[i]==10)
			{
				xy=xy;
			}
			else
			{
				xy+=CifreXY[i]*pow(10, BrCifaraXY-j);
			}
			if (CifreXY[i-1]<10)
			{
				j++;
			}
			else
			{
				j+=2;
			}
		}
	}
	cout<<xy<<endl;
	return 0;
}