#include <bits/stdc++.h>
using namespace std;
const int mxN = 5e5;
string s, t;
int c0, c1, m, z[mxN], d0, d1, e0, e1;
void cz(string &s) {
  int l = 0, r = 0;
  for (int i = 1; i < s.size(); ++i) {
    if (i > r) {
      l = r = i;
      while (r < s.size() && s[r - l] == s[r]) ++r;
      z[i] = r - l;
      --r;
    } else {
      int k = i - l;
      if (z[k] >= r - i + 1) {
        l = i;
        while (r < s.size() && s[r - l] == s[r]) ++r;
        z[i] = r - l;
        --r;
      } else
        z[i] = z[k];
    }
  }
}
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  cin >> s >> t;
  for (char c : s) {
    c0 += c == '0';
    c1 += c == '1';
  }
  for (char c : t) {
    d0 += c == '0';
    d1 += c == '1';
  }
  if (d0 > c0 || d1 > c1) {
    cout << s;
    return 0;
  }
  m = t.size();
  cz(t);
  int l = 1;
  while (l < m && z[l] < m - l) ++l;
  for (int i = 0; i < l; ++i) {
    e0 += t[i] == '0';
    e1 += t[i] == '1';
  }
  while (d0 <= c0 - e0 && d1 <= c1 - e1) {
    c0 -= e0;
    c1 -= e1;
    for (int i = 0; i < l; ++i) cout << t[i];
  }
  cout << t;
  c0 -= d0;
  c1 -= d1;
  for (int i = 0; i < c0; ++i) cout << 0;
  for (int i = 0; i < c1; ++i) cout << 1;
  return 0;
}
