#include <bits/stdc++.h>
using namespace std;
int ara[30], f_s[200], f_t[200];
int vis[30];
queue<int> q;
int main() {
  std::ios_base::sync_with_stdio(false);
  cin.tie(0);
  string s, t;
  cin >> s >> t;
  int len = s.size();
  for (int i = 0; i < len; i++) {
    if (s[i] >= 'a' && s[i] <= 'z') {
      f_s[s[i] - 'a']++;
    }
  }
  len = t.size();
  for (int i = 0; i < len; i++) {
    if (t[i] >= 'a' && t[i] <= 'z') {
      f_t[t[i] - 'a']++;
    }
  }
  len = s.size();
  for (int i = 0; i < len; i++) {
    if (s[i] == '?') {
      q.push(i);
    }
  }
  while (!q.empty()) {
    for (int i = 0; i < 26; i++) {
      while (f_s[i] < f_t[i] && !q.empty()) {
        s[q.front()] = i + 'a';
        q.pop();
        f_s[i]++;
      }
      f_s[i] -= f_t[i];
    }
  }
  cout << s << endl;
  return 0;
}
