#include <bits/stdc++.h>
using namespace std;
int nxt[500005];
void get(string x, int m) {
  int i, j;
  j = nxt[0] = -1;
  i = 0;
  while (i < m) {
    while (-1 != j && x[i] != x[j]) j = nxt[j];
    nxt[++i] = ++j;
  }
}
int main() {
  ios::sync_with_stdio(false);
  string s, t;
  cin >> s >> t;
  int k1 = 0, k2 = 0;
  for (int i = 0; i < s.length(); i++) {
    if (s[i] == '0') {
      k1++;
    } else {
      k2++;
    }
  }
  int k3 = 0, k4 = 0;
  for (int i = 0; i < t.length(); i++) {
    if (t[i] == '0') {
      k3++;
    } else {
      k4++;
    }
  }
  t += "2";
  get(t, t.length());
  int u = nxt[t.length() - 1];
  t.resize(t.length() - 1);
  int k5 = 0, k6 = 0;
  for (int i = u; i < t.length(); i++) {
    if (t[i] == '0') {
      k5++;
    } else {
      k6++;
    }
  }
  bool flag = 0;
  string ans = "";
  string k = t.substr(u);
  if (k1 >= k3 && k2 >= k4) {
    ans += t;
    k1 -= k3;
    k2 -= k4;
  }
  while (k1 >= k5 && k2 >= k6) {
    k1 -= k5;
    k2 -= k6;
    ans += k;
  }
  while (k1) {
    ans += '0';
    k1--;
  }
  while (k2) {
    ans += '1';
    k2--;
  }
  cout << ans << endl;
  return 0;
}
