#include <bits/stdc++.h>
using namespace std;
const long long MaxN = 3100002;
long long c;
string s, t;
long long hs[MaxN], ht[MaxN];
bool solve(long long k) {
  long long sum = 0;
  for (int i = 0; i < 26; i++) {
    sum += ht[i] * k - min(hs[i], k * ht[i]);
  }
  if (sum <= c) return true;
  return false;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> s >> t;
  for (int i = 0; i < s.size(); i++) {
    if (s[i] != '?')
      hs[s[i] - 'a']++;
    else
      c++;
  }
  for (int i = 0; i < t.size(); i++) ht[t[i] - 'a']++;
  long long in = 0, fin = MaxN, la = 0;
  while (in <= fin) {
    long long mid = (in + fin) / 2LL;
    if (solve(mid)) {
      in = mid + 1;
      la = mid;
    } else
      fin = mid - 1;
  }
  for (int i = 0; i < 26; i++) {
    if (ht[i]) {
      ht[i] = max(ht[i], ht[i] * la);
      for (int j = 0; j < s.size(); j++) {
        char aux = (char)(i + 'a');
        if (hs[i] >= ht[i]) break;
        if (s[j] == '?') {
          s[j] = aux;
          hs[i]++;
        }
      }
    }
  }
  for (int i = 0; i < s.size(); i++) {
    if (s[i] == '?') {
      s[i] = 'a';
    }
  }
  cout << s << "\n";
}
