#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
const long long MAXN = 5e5 + 5;
string s;
long long k1, k0, k;
long long prfun(string s) {
  vector<int> a(s.size());
  a[0] = 0;
  for (int i = 1; i < s.size(); ++i) {
    int j = a[i - 1];
    while (j > 0 && s[i] != s[j]) j = a[j - 1];
    if (s[i] == s[j]) ++j;
    a[i] = j;
  }
  return a[s.size() - 1];
}
int main() {
  cin >> s;
  for (int i = 0; i < s.size(); ++i) {
    if (s[i] == '0')
      ++k0;
    else
      ++k1;
  }
  cin >> s;
  k = prfun(s);
  if (k == s.size()) --k;
  int i = 0;
  while (k0 > 0 && k1 > 0) {
    if (s[i] == '0') {
      cout << '0';
      --k0;
    } else {
      cout << '1';
      --k1;
    }
    ++i;
    if (i == s.size()) i = k;
  }
  while (k0 > 0) {
    cout << '0';
    --k0;
  }
  while (k1 > 0) {
    cout << '1';
    --k1;
  }
  return 0;
}
