#include <bits/stdc++.h>
using namespace std;
int a[100007], b[100007], c[100007];
string s, ss, sss;
int min1 = 0x3f3f3f3f, min2 = 0x3f3f3f3f, m = 0, n = 0;
int main() {
  memset(a, 0, sizeof(a));
  memset(b, 0, sizeof(b));
  memset(c, 0, sizeof(c));
  cin >> s >> ss >> sss;
  for (int i = 0; i < s.size(); i++) a[s[i] - 'a']++;
  for (int i = 0; i < ss.size(); i++) b[ss[i] - 'a']++;
  for (int i = 0; i < sss.size(); i++) c[sss[i] - 'a']++;
  for (int i = 0; i < 26; i++)
    if (b[i]) min1 = min(min1, a[i] / b[i]);
  for (int i = 0; i <= min1; i++) {
    for (int j = 0; j < 26; j++) {
      if (c[j]) {
        min2 = min(min2, (a[j] - i * b[j]) / c[j]);
      }
    }
    if (i + min2 > m + n) {
      m = i;
      n = min2;
    }
  }
  for (int i = 0; i < m; i++) {
    cout << ss;
  }
  for (int i = 0; i < n; i++) {
    cout << sss;
  }
  for (int i = 0; i < 26; i++) {
    if (a[i] - b[i] * m - c[i] * n > 0) {
      cout << char('a' + i);
      a[i]--;
      i--;
    }
  }
  return 0;
}
