#include <bits/stdc++.h>
using namespace std;
const long long M = (long long)1e9 + 7;
int main() {
  string s, t;
  cin >> s >> t;
  vector<long long> fs(26), ft(26);
  long long q = 0;
  for (long long i = 0; i < s.size(); i++)
    if (s[i] == '?')
      q++;
    else
      fs[s[i] - 'a']++;
  for (long long i = 0; i < t.size(); i++) ft[t[i] - 'a']++;
  long long l = 0, h = (long long)1e6;
  long long mid;
  while (l < h) {
    mid = (l + h + 1) / 2;
    long long cnt = 0;
    for (long long i = 0; i < 26; i++)
      if (fs[i] < ft[i] * mid) cnt += (ft[i] * mid - fs[i]);
    if (cnt <= q)
      l = mid;
    else
      h = mid - 1;
  }
  int cur = 0;
  for (int i = 0; i < s.size(); i++) {
    if (s[i] != '?') continue;
    while (cur < 26 && ft[cur] * l <= fs[cur]) cur++;
    if (cur < 26) {
      s[i] = ('a' + cur);
      fs[cur]++;
    } else
      s[i] = ('z');
  }
  cout << s << '\n';
}
