#include <bits/stdc++.h>
using namespace std;
template <typename T>
ostream &operator<<(ostream &cout, vector<T> &a) {
  for (size_t i = 0; i < a.size(); ++i) cout << a[i] << " ";
  return cout;
}
template <typename T>
ostream &operator<<(ostream &cout, vector<vector<T> > &a) {
  for (size_t i = 0; i < a.size(); ++i) cout << a[i] << endl;
  return cout;
}
long long a[27];
long long b[27];
int main() {
  ios_base::sync_with_stdio(0);
  string s, t;
  cin >> s >> t;
  for (int i = 0; i < t.size(); ++i) {
    if (t[i] == '?')
      a[0]++;
    else
      a[t[i] - 'a' + 1]++;
  }
  for (int i = 0; i < s.size(); ++i) {
    if (s[i] == '?')
      b[0]++;
    else
      b[s[i] - 'a' + 1]++;
  }
  long long l = -1, r = 1e6 + 1, m;
  long long cur = 0;
  while (r - l > 1) {
    m = (r + l) / 2;
    cur = b[0];
    for (int i = 1; i < 27; ++i) {
      cur -= max(0LL, a[i] * m - b[i]);
    }
    if (cur >= 0) {
      l = m;
    } else
      r = m;
  }
  m = l;
  cur = 1;
  for (int i = 1; i < 27; ++i) {
    b[i] = max(0LL, a[i] * m - b[i]);
  }
  for (int i = 0; i < s.size(); ++i) {
    if (s[i] != '?')
      cout << s[i];
    else {
      while (cur < 27 && b[cur] == 0) ++cur;
      if (cur == 27) {
        cout << 'a';
      } else {
        cout << (char)('a' + cur - 1);
        b[cur]--;
      }
    }
  }
  return 0;
}
