#include <bits/stdc++.h>
using namespace std;
int main() {
  string s, t;
  cin >> s >> t;
  if (s.size() >= t.size()) {
    map<char, long long> ms;
    map<char, long long> mt;
    for (long long i = 0; i < s.size(); i++) ms[s[i]]++;
    for (long long i = 0; i < t.size(); i++) mt[t[i]]++;
    string x;
    while (1) {
      long long ch = 0;
      for (auto it = mt.begin(); it != mt.end(); it++) {
        if (ms[it->first] >= it->second)
          ms[it->first] = ms[it->first] - it->second;
        else if (ms['?'] >= -ms[it->first] + it->second) {
          long long y = -ms[it->first] + it->second;
          ms[it->first] = 0;
          ms['?'] = ms['?'] - y;
          while (y--) x.push_back(it->first);
        } else {
          ch = 1;
          break;
        }
      }
      if (ch) break;
    }
    for (long long i = 0; i < s.size(); i++) {
      if (x.size() and s[i] == '?') {
        s[i] = x.back();
        x.pop_back();
      }
    }
  }
  for (long long i = 0; i < s.size(); i++) {
    if (s[i] == '?') {
      s[i] = 'a';
    }
  }
  cout << s << endl;
}
