#include <bits/stdc++.h>
using namespace std;
vector<int> pi(const string& s) {
  vector<int> p((int)(s).size());
  for (int i = 1; i < ((int)(s).size()); ++i) {
    int g = p[i - 1];
    while (g && s[i] != s[g]) g = p[g - 1];
    p[i] = g + (s[i] == s[g]);
  }
  return p;
}
int main() {
  string s, t;
  cin >> s >> t;
  vector<int> p = pi(t);
  int mx = p[(int)(p).size() - 1];
  int s1 = 0, s2 = 0;
  for (int i = 0; i < (s.length()); ++i) {
    if (s[i] == '0')
      s1++;
    else
      s2++;
  }
  int t1 = 0;
  int t2 = 0;
  for (int i = 0; i < (t.length()); ++i) {
    if (t[i] == '0')
      t1++;
    else
      t2++;
  }
  int t3 = 0, t4 = 0;
  for (int i = mx; i < (t.length()); ++i) {
    if (t[i] == '0')
      t3++;
    else
      t4++;
  }
  if (t1 > s1 || t2 > s2) {
    cout << s << endl;
  } else {
    if (t3 == 0 && t4 == 0) {
      int extra;
      if (t1 == 0) {
        extra = s2 / t2;
      } else if (t2 == 0) {
        extra = s1 / t1;
      } else {
        extra = min(s1 / t1, s2 / t2);
      }
      for (int i = 0; i < (extra); ++i) {
        cout << t;
      }
      for (int i = 0; i < (s1 - (t1 * extra)); ++i) {
        cout << 0;
      }
      for (int i = 0; i < (s2 - (t2 * extra)); ++i) {
        cout << 1;
      }
    } else {
      int extra;
      if (t3 == 0) {
        extra = (s2 - t2) / t4;
      } else if (t4 == 0) {
        extra = (s1 - t1) / t3;
      } else {
        extra = min((s1 - t1) / t3, (s2 - t2) / t4);
      }
      cout << t;
      string tt = t.substr(mx, string::npos);
      for (int i = 0; i < (extra); ++i) {
        cout << tt;
      }
      for (int i = 0; i < (s1 - (t1 + t3 * extra)); ++i) {
        cout << 0;
      }
      for (int i = 0; i < (s2 - (t2 + t4 * extra)); ++i) {
        cout << 1;
      }
    }
  }
  cout << endl;
}
