#include<stdio.h>
#include<string.h>
int min(int a, int b)
{
	return (a<b)? a:b;
}
int poredjenje(char A[],char B[],char C[])
{
	int p,i,ind;
	p=min(strlen(A),strlen(B));
		for(i=0;i<p;i++)
	{		
		if((int)A[i]>(int)B[i])
		{
        ind=1;
		break;
		}
		if((int)A[i]<(int)B[i])
		{
			ind=2;
			break;
		}
	}
	
	if(i<p)
	return ind;
	
	else
	{
	if(strlen(A)>strlen(B))
	{
	p=strlen(A);
	for(i=strlen(B);i<p;i++)
	{
		if((int)A[i]>(int)C[i-strlen(B)])
		{
			ind=1;
			break;
		}
		if((int)A[i]<(int)C[i-strlen(B)])
		{
			ind=2;
			break;
		}
	}
	if(i<p)
	return ind;
	else
	return 1;
	}
	
	
	if(strlen(B)>strlen(A))
	{
		p=strlen(B);
		for(i=strlen(A);i<p;i++)
		{
			if((int)B[i]>(int)C[i-strlen(A)])
			{
				ind=2;
				break;
			}
			if((int)B[i]<(int)C[i-strlen(A)])
			{
				ind=1;
				break;
			}
		}
	if(i<p)
	return ind;
	else
	return 2;	
	}
	}
}
main()
{
	int i,p,ind=0;
	char A[20],B[20],C[20]; 
	scanf("%s%s%s",&A,&B,&C);
	if(poredjenje(A,B,C)==1)
	{
		if(poredjenje(A,C,B)==1)
		{
		printf("%s",A);
		ind=1;
		}
		else
		{
		printf("%s",C);
		ind=3;
		}
	}
	else if(poredjenje(A,B,C)==2)
	{
		if(poredjenje(B,C,A)==1)
		{
		printf("%s",B);
		ind=2;
		}
		else
		{
		printf("%s",C);
		ind=3;
		}
	}
	
	
	if(ind==1)
	{
		if(poredjenje(B,C,A)==1)
		{
		printf("%s",B);
		printf("%s",C);
		}
		else
		{
		printf("%s",C);
		printf("%s",B);
		}
	}
	if(ind==2)
	{
		if(poredjenje(A,C,B)==1)
		{
			printf("%s",A);
			printf("%s",C);
		}
		else
		{
			printf("%s",C);
			printf("%s",A);
		}
	}
	if(ind==3)
	{
		if(poredjenje(A,B,C)==1)
		{
			printf("%s",A);
			printf("%s",B);
		}
		else
		{
			printf("%s",B);
			printf("%s",A);
		}
	}
}