#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <string>using namespace std;const int MAXN = 150;string str[MAXN];int vis[MAXN], len, n;bool Scan(string temp);bool cmp(string a, string b){return a.size() < b.size();}int main(){int T, i, j;while (getline(cin, str[0])){n = 1;while (getline(cin, str[n])){if (str[n].size() == 0)break;elsen++;}sort(str, str + n, cmp);len = str[n - 1].size() + str[0].size();for (i = 0; str[i].size() == str[0].size(); i++){memset(vis, 0, sizeof(vis));string temp = str[i] + str[n - 1];bool flag = Scan(temp);if (flag){cout << temp << endl;break;}memset(vis, 0, sizeof(vis));temp = str[n - 1] + str[i];flag = Scan(temp);if (flag){cout << temp << endl;break;}}}return 0;}bool Scan(string temp){int k = 0, i, j;bool flag = false;for (i = 0; i < n; i++){for (j = n - 1; j >= 0; j--){if (!vis[i] && !vis[j] && str[i] + str[j] == temp || str[j] + str[i] == temp){vis[i] = vis[j] = 1;break;}}}for (i = 0; i < n; i++)if (!vis[i])return false;return true;}


