#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker, "/STACK:667772160")
template <class T1>
void deb(T1 e1) {
  cout << e1 << endl;
}
template <class T1, class T2>
void deb(T1 e1, T2 e2) {
  cout << e1 << " " << e2 << endl;
}
template <class T1, class T2, class T3>
void deb(T1 e1, T2 e2, T3 e3) {
  cout << e1 << " " << e2 << " " << e3 << endl;
}
template <class T1, class T2, class T3, class T4>
void deb(T1 e1, T2 e2, T3 e3, T4 e4) {
  cout << e1 << " " << e2 << " " << e3 << " " << e4 << endl;
}
template <class T1, class T2, class T3, class T4, class T5>
void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5) {
  cout << e1 << " " << e2 << " " << e3 << " " << e4 << " " << e5 << endl;
}
template <class T1, class T2, class T3, class T4, class T5, class T6>
void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5, T6 e6) {
  cout << e1 << " " << e2 << " " << e3 << " " << e4 << " " << e5 << " " << e6
       << endl;
}
char S[1000000 + 7], T[1000000 + 7];
int cont[30];
vector<int> ques;
int to_int(char ch) {
  if (isalpha(ch)) return ch - 'a';
  return 26;
}
int main() {
  scanf("%s %s", S, T);
  int sln = strlen(S), tln = strlen(T);
  for (int i = 0; i < sln; i++) {
    cont[to_int(S[i])]++;
    if (to_int(S[i]) == 26) ques.push_back(i);
  }
  int ans = 0;
  int id = 0, p, aa;
  while (id < sln) {
    p = id % tln;
    aa = to_int(T[p]);
    if (cont[aa] > 0)
      cont[aa]--;
    else if (cont[26] > 0) {
      S[ques.back()] = T[p];
      cont[26]--;
      ques.pop_back();
    }
    id++;
    if (id % tln == 0) ans++;
  }
  for (int i = 0; i < sln; i++) {
    if (S[i] == '?') S[i] = 'a';
    printf("%c", S[i]);
  }
  printf("\n");
  return 0;
}
