#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
const int N = 1000000 + 5;
const int K = 26 + 5;
char s[N], t[N];
int ns[K], nt[K], ans[K];
int main() {
  scanf("%s %s", s, t);
  for (int i = 0; t[i]; ++i) {
    nt[t[i] - 'a']++;
  }
  int cnt = 0;
  for (int i = 0; s[i]; ++i) {
    if (s[i] != '?')
      ns[s[i] - 'a']++;
    else
      cnt++;
  }
  while (1) {
    int c = 0;
    for (int i = 0; i < 26; ++i) {
      if (nt[i]) c += max(0, nt[i] - ns[i]);
    }
    if (cnt < c) break;
    for (int i = 0; i < 26; ++i) {
      if (nt[i]) {
        ans[i] += max(0, nt[i] - ns[i]);
        ns[i] = max(0, ns[i] - nt[i]);
      }
    }
    cnt -= c;
  }
  int k = 0;
  for (int i = 0; s[i]; ++i) {
    if (s[i] == '?') {
      while (k < 26 && ans[k] <= 0) k++;
      if (k < 26) ans[k]--;
      printf("%c", 'a' + (k < 26 ? k : 0));
    } else {
      printf("%c", s[i]);
    }
  }
  printf("\n");
}
