#include <bits/stdc++.h>
using namespace std;
const int maxn = 5e5 + 5;
int pi[maxn];
void prefix_function(string& s) {
  pi[0] = 0;
  for (int i = 1; i < s.size(); i++) {
    int j = pi[i - 1];
    while (j > 0 && s[i] != s[j]) {
      j = pi[j - 1];
    }
    if (s[i] == s[j]) j++;
    pi[i] = j;
  }
}
int cnt1 = 0;
int cnt0 = 0;
string res;
inline void try_add(int val) {
  if (val == 0 && cnt0 == 0) {
    for (int i = 0; i < cnt1; i++) res += "1";
    cout << res;
    exit(0);
  }
  if (val == 1 && cnt1 == 0) {
    for (int i = 0; i < cnt0; i++) res += "0";
    cout << res;
    exit(0);
  }
  if (val == 0) {
    res += "0";
    cnt0--;
  } else {
    res += "1";
    cnt1--;
  }
}
int main() {
  string s, t;
  cin >> s >> t;
  for (int i = 0; i < s.size(); i++) {
    if (s[i] == '1') {
      cnt1++;
    }
  }
  cnt0 = s.size() - cnt1;
  prefix_function(t);
  res.reserve(s.size());
  int x = pi[t.size() - 1];
  while (true) {
    for (int i = 0; i < t.size() - x; i++) {
      try_add(t[i] - '0');
    }
  }
}
