#include <bits/stdc++.h>
using namespace std;
const int MaxN = 1000003;
char A[MaxN], B[MaxN];
int la, lb, cntA[26], cntB[26], cntq;
inline void put_char(const char& x) {
  static int p = 0;
  if (cntq == 0) return;
  while (A[p] != '?') p++;
  A[p] = x;
  cntA[x - 'a']++;
  cntq--;
  p++;
}
int main() {
  scanf("%s%s", A, B);
  la = strlen(A), lb = strlen(B);
  for (int i = 0; i < la; ++i) {
    if (A[i] == '?')
      cntq++;
    else
      cntA[A[i] - 'a']++;
  }
  for (int i = 0; i < lb; ++i) cntB[B[i] - 'a']++;
  while (true) {
    for (int i = 0; i < 26; ++i)
      if (cntA[i] < cntB[i]) goto fail;
    for (int i = 0; i < 26; ++i) cntA[i] -= cntB[i];
  }
fail:
  while (cntq > 0) {
    for (int i = 0; i < 26; ++i) {
      while (cntq > 0 && cntA[i] < cntB[i]) {
        put_char(i + 'a');
      }
      if (cntq == 0) break;
      cntA[i] -= cntB[i];
    }
  }
  puts(A);
  return 0;
}
