#include <bits/stdc++.h>
using namespace std;
const int N = 200500;
vector<int> z_function(string& s) {
  int l = 0, r = 0, n = s.size();
  vector<int> z(s.size(), 0);
  for (int i = 1, qwerty = n; i < qwerty; i++) {
    if (i <= r) z[i] = min(r - i + 1, z[i - l]);
    while (i + z[i] < n && s[z[i]] == s[i + z[i]]) z[i]++;
    if (i + z[i] - 1 > r) l = i, r = i + z[i] - 1;
  }
  return z;
}
int w[2];
int q[2];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  string s, t;
  cin >> s >> t;
  string ans = t;
  for (int c : s) w[c - '0']++;
  for (int c : t) q[c - '0']++;
  t += "$" + t;
  vector<int> z = z_function(t);
  vector<int> r;
  for (int i = 0, qwerty = ((int)(t).size()); i < qwerty; i++)
    if (t[i] == '$') {
      for (int j = i + 2, qwerty = ((int)(t).size()); j < qwerty; j++)
        if (j + z[j] == ((int)(t).size())) r.push_back(j);
    }
  r.push_back(((int)(t).size()));
  if (q[0] > w[0] || q[1] > w[1]) {
    cout << s << "\n";
    return 0;
  }
  w[0] -= q[0];
  w[1] -= q[1];
  int x = r[0] - ((int)(ans).size()) - 1;
  string add = "";
  for (int i = ((int)(ans).size()) - x, qwerty = ((int)(ans).size());
       i < qwerty; i++)
    add += ans[i];
  for (int i = x, qwerty = ((int)(ans).size()); i < qwerty; i++)
    q[ans[i] - '0']--;
  while (q[0] <= w[0] && q[1] <= w[1]) {
    w[0] -= q[0];
    w[1] -= q[1];
    ans += add;
  }
  for (int i = 0, qwerty = w[0]; i < qwerty; i++) ans += "0";
  for (int i = 0, qwerty = w[1]; i < qwerty; i++) ans += "1";
  cout << ans << "\n";
}
