#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int maxn = 1e6 + 5;
map<char, int> mp, mpp, sk, dj;
set<pair<pair<int, int>, char> > st;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  string s, t;
  cin >> s >> t;
  int i;
  for (i = 0; i < int(s.size()); i++) {
    mp[s[i]]++;
  }
  for (i = 0; i < int(t.size()); i++) mpp[t[i]]++;
  for (auto it : mpp) {
    sk[it.first] = mp[it.first] / it.second;
    dj[it.first] = mp[it.first] % it.second;
    st.insert({{sk[it.first], dj[it.first]}, it.first});
  }
  for (i = 0; i < int(s.size()); i++) {
    if (s[i] == '?') {
      auto it = *st.begin();
      s[i] = it.second;
      it.first.second++;
      if (it.first.second == mpp[it.second]) {
        it.first.first++;
        it.first.second = 0;
      }
      st.erase(st.begin());
      st.insert({{it.first.first, it.first.second}, it.second});
    }
  }
  cout << s;
  return 0;
}
