#include <bits/stdc++.h>
const double pi = acos(-1.0);
const double eps = 1e-12;
using namespace std;
const int N = 26;
int cnts[N], cntt[N];
string s, t;
void solve() {
  cin >> s >> t;
  int n = s.size();
  int m = t.size();
  for (int i = 0; i < s.size(); i++) {
    if (s[i] != '?') {
      cnts[s[i] - 'a']++;
    }
  }
  for (int i = 0; i < t.size(); i++) {
    cntt[t[i] - 'a']++;
  }
  set<pair<pair<int, int>, pair<int, int>>> st;
  for (int i = 0; i < 26; i++) {
    if (!cntt[i]) {
      continue;
    }
    st.insert({{cnts[i] / cntt[i], i}, {cnts[i], cntt[i]}});
  }
  for (int i = 0; i < n; i++) {
    if (s[i] != '?') {
      cout << s[i];
      continue;
    }
    auto beg = *st.begin();
    st.erase(beg);
    beg.second.first++;
    beg.first.first = beg.second.first / beg.second.second;
    cout << char('a' + beg.first.second);
    st.insert(beg);
  }
}
int main() {
  ios::sync_with_stdio(NULL), cin.tie(0), cout.tie(0);
  cout.setf(ios::fixed), cout.precision(6);
  int step;
  step = 1;
  for (int i = 1; i <= step; i++) {
    solve();
  }
}
