#include <bits/stdc++.h>
using namespace std;
int ret[500005];
void prefixFunc(string s) {
  int m = (int)s.size();
  for (int i = 1, k = 0; i < m; i++) {
    while (k > 0 && s[k] != s[i]) k = ret[k - 1];
    if (s[k] == s[i])
      ret[i] = ++k;
    else
      ret[i] = k;
  }
}
int cnt[2];
int main() {
  string s, t;
  cin >> s >> t;
  for (int i = 0; i < s.size(); i++) cnt[s[i] - '0']++;
  prefixFunc(t);
  string p[2];
  p[0] = t.substr(0, ret[(int)t.size() - 1]);
  p[1] =
      t.substr(ret[(int)t.size() - 1], (int)t.size() - ret[(int)t.size() - 1]);
  bool flag = 0;
  while (true) {
    for (int i = 0; i < p[flag].size(); i++)
      if (cnt[p[flag][i] - '0'])
        printf("%c", p[flag][i]), cnt[p[flag][i] - '0']--;
      else {
        for (int j = 0; j < cnt[(p[flag][i] - '0' + 1) % 2]; j++)
          printf("%c", (p[flag][i] - '0' + 1) % 2 + '0');
        printf("\n");
        return 0;
      }
    flag = 1;
  }
  return 0;
}
