#include <bits/stdc++.h>
#pragma GCC optimize "-O3"
using namespace std;
using ll = long long;
using ld = long double;
using ull = unsigned long long;
using str = string;
using pll = pair<ll, ll>;
inline ll divUp(ll a, ll b) { return (a + b - 1) / b; }
ll mpow(ll a, ll p, ll m) {
  ll ans = 1;
  while (p) {
    if (p & 1) {
      ans *= a;
      ans %= m;
    }
    a *= a;
    p /= 2;
    a %= m;
  }
  return ans;
}
class Hash {
  const ll mod = 100000217;
  const ll base = 7;
  ll size = 0;

 public:
  ll hash = 0;
  void push_back(char c) {
    c -= '0';
    size++;
    if (c) hash += mpow(base, size, mod);
    if (hash >= mod) hash -= mod;
  }
  void push_front(char c) {
    c -= '0';
    hash *= base;
    hash %= mod;
    size++;
    if (c) hash += base;
    if (hash >= mod) hash -= mod;
  }
};
void solve() {
  str s, t;
  cin >> s >> t;
  if (s.size() < t.size()) {
    cout << s << "\n";
    return;
  }
  vector<ll> hash(t.size());
  vector<ll> post_hash(t.size());
  Hash h;
  for (ll i = 0; i < t.size(); i++) {
    h.push_back(t[i]);
    hash[i] = h.hash;
  }
  Hash h1;
  for (ll i = t.size() - 1; i >= 0; i--) {
    h1.push_front(t[i]);
    post_hash[i] = h1.hash;
  }
  ll idx = -1;
  for (ll i = 0; i < t.size() - 1; i++) {
    if (hash[i] == post_hash[post_hash.size() - 1 - i]) idx = i;
  }
  ll cnt[2];
  memset(cnt, 0, sizeof(cnt));
  for (auto &it : s) cnt[it - '0']++;
  ll cntT[2];
  memset(cntT, 0, sizeof(cntT));
  for (auto &it : t) cntT[it - '0']++;
  for (ll i = 0; i < 2; i++) {
    if (cnt[i] < cntT[i]) {
      cout << s << "\n";
      return;
    }
  }
  idx += 1;
  str ans;
  ans = t;
  for (ll i = 0; i < 2; i++) cnt[i] -= cntT[i];
  ll cntTail[2];
  memset(cntTail, 0, sizeof(cntTail));
  for_each(t.begin() + idx, t.end(),
           [&](const char &c) { cntTail[c - '0']++; });
  while (cnt[0] >= cntTail[0] && cnt[1] >= cntTail[1]) {
    for (ll i = 0; i < 2; i++) cnt[i] -= cntTail[i];
    for (ll i = idx; i < t.size(); i++) ans.push_back(t[i]);
  }
  for (ll i = 0; i < 2; i++) {
    for (ll j = 0; j < cnt[i]; j++) {
      ans += char(i + '0');
    }
  }
  cout << ans << "\n";
}
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  solve();
  return 0;
}
