#include <bits/stdc++.h>
const int MAX = (int)(5e5) + 7;
const int MOD = (int)(1e9) + 7;
const int INF_I = (int)(1e9) + 7;
const long long INF_LL = (long long)(1e18) + 7;
using namespace std;
string s;
string t;
int z[MAX];
template <typename T>
void info(T& a) {
  for (auto& el : a) cout << el << ' ';
  cout << '\n';
}
inline int input_I() {
  int a;
  cin >> a;
  return a;
}
inline long long input_LL() {
  long long a;
  cin >> a;
  return a;
}
void boot() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
}
void z_func(string& s) {
  int n = (int)((s).size());
  int l = 0, r = 0;
  for (int i = 1; i < n; ++i) {
    if (i <= l) z[i] = min(z[i - l], r - i + 1);
    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;
    }
  }
}
pair<int, int> get_symb(string& s) {
  int zers = 0, ones = 0;
  for (auto& i : s) {
    if (i == '0')
      ++zers;
    else
      ++ones;
  }
  return {zers, ones};
}
void solve() {
  string ans;
  auto [s_0, s_1] = get_symb(s);
  auto [t_0, t_1] = get_symb(t);
  if (s_0 >= t_0 && s_1 >= t_1) {
    cout << t;
    s_0 -= t_0;
    s_1 -= t_1;
    int st = -1;
    int sz_t = (int)((t).size());
    int l = 0, r = 0;
    for (int i = 1; i < sz_t; ++i) {
      if (i <= r) z[i] = min(z[i - l], r - i + 1);
      while (i + z[i] < sz_t && t[z[i]] == t[i + z[i]]) ++z[i];
      if (z[i] == sz_t - i) {
        st = i;
        break;
      }
      if (i + z[i] - 1 > r) {
        l = i;
        r = i + z[i] - 1;
      }
    }
    if (st != -1) {
      string suff = "";
      for (int i = sz_t - st; i < sz_t; ++i) {
        suff += t[i];
      }
      auto [suff_0, suff_1] = get_symb(suff);
      while (s_0 >= suff_0 && s_1 >= suff_1) {
        cout << suff;
        s_0 -= suff_0;
        s_1 -= suff_1;
      }
    }
    while (s_0 >= t_0 && s_1 >= t_1) {
      cout << t;
      s_0 -= t_0;
      s_1 -= t_1;
    }
    for (int i = 0; i < s_0; ++i) cout << '0';
    for (int i = 0; i < s_1; ++i) cout << '1';
    cout << '\n';
  } else {
    cout << s << '\n';
  }
}
signed main() {
  boot();
  while (cin >> s >> t) solve();
}
