#include <iostream>
#include <string>
using namespace std;

	string a, b, c;
	int niz[20], abc[3][20], nizu[60], mat[6][60], mas, p, d, t;

void poredjenje(int pr, int dr) {
	for (int i = 0; i < p+d+t; i++) {
		if (mat[pr][i] < mat[dr][i]) {
			mas = dr;
			break;
		}
		if (mat[pr][i] > mat[dr][i]) {
			mas = pr;
			break;
		}  
	}
}

void stringtoint(string x) {
	for (int i = 0; i < x.length(); i++) {
		if (x[i] == '0') {
			niz[i] = 0;
		}
		if (x[i] == '1') {
			niz[i] = 1;
		}
		if (x[i] == '2') {
			niz[i] = 2;
		}
		if (x[i] == '3') {
			niz[i] = 3;
		}
		if (x[i] == '4') {
			niz[i] = 4;
		}
		if (x[i] == '5') {
			niz[i] = 5;
		}
		if (x[i] == '6') {
			niz[i] = 6;
		}
		if (x[i] == '7') {
			niz[i] = 7;
		}
		if (x[i] == '8') {
			niz[i] = 8;
		}
		if (x[i] == '9') {
			niz[i] = 9;
		}
	}
}

void punjenje(int a, int b, int j, int d) {
	for (int i = a; i < b; i++) {
		mat[j][i] = abc[d][i-a];
	}
}

int main () {
	cin >> a >> b >> c;
	p = a.length();
	d = b.length();
	t = c.length();
	
	stringtoint(a);
	for (int i = 0; i < a.length(); i++) {
		abc[0][i] = niz[i];
	}
	
	stringtoint(b);
	for (int i = 0; i < b.length(); i++) {
		abc[1][i] = niz[i];
	}
	
	stringtoint(c);
	for (int i = 0; i < c.length(); i++) {
		abc[2][i] = niz[i];
	}
		
		punjenje(0, p, 0, 0);
		punjenje(p, d+p, 0, 1);
		punjenje(d+p, t+d+p, 0, 2);
		
		punjenje(0, p, 1, 0);
		punjenje(p, p+t, 1, 2);
		punjenje(p+t, d+t+p, 1, 1);
		
		punjenje(0, d, 2, 1);
		punjenje(d, d+p, 2, 0);
		punjenje(d+p, t+d+p, 2, 2);
		
		punjenje(0, d, 3, 1);
		punjenje(d, d+t, 3, 2);
		punjenje(d+t, d+p+t, 3, 0);
		
		punjenje(0, t, 4, 2);
		punjenje(t, d+t, 4, 1);
		punjenje(d+t, p+d+t, 4, 0);
		
		punjenje(0, t, 5, 2);
		punjenje(t, p+t, 5, 0);
		punjenje(p+t, d+p+t, 5, 1);
		
		poredjenje(0, 1);
		poredjenje(mas, 2);
		poredjenje(mas, 3);
		poredjenje(mas, 4);
		poredjenje(mas, 5);
		
		for (int i = 0; i < p+d+t; i++)
		{
			cout<<mat[mas][i];
		}
	return 0;
}