#include <bits/stdc++.h>
using namespace std;
int main() {
  string s, t;
  cin >> s >> t;
  long long n = s.length(), m = t.length(), i, cnt = 0, x = 0, j = 0;
  long long trr[26] = {0};
  long long srr[26] = {0};
  for (i = 0; i < m; i++) {
    trr[t[i] - 'a']++;
  }
  for (i = 0; i < n; i++) {
    if (s[i] != '?')
      srr[s[i] - 'a']++;
    else
      cnt++;
  }
  long long l = 0, r = (n / m), mid, ans = 0;
  while (l <= r) {
    x = 0;
    mid = (l + r) / 2;
    for (i = 0; i < 26; i++) {
      x += max(0LL, trr[i] * mid - srr[i]);
    }
    if (x <= cnt) {
      ans = max(ans, mid);
      l = mid + 1;
    } else {
      r = mid - 1;
    }
  }
  j = 0;
  for (i = 0; i < n; i++) {
    while (trr[j] * ans - srr[j] <= 0 && j < 26) {
      j++;
    }
    if (j >= 26) {
      break;
    }
    if (s[i] == '?') {
      s[i] = char(j + 'a');
      srr[j]++;
    }
  }
  for (i = 0; i < n; i++) {
    if (s[i] == '?') {
      s[i] = 'a';
    }
  }
  cout << s;
}
