#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  string s, t;
  cin >> s >> t;
  map<char, long long> cnt, mp, owe;
  for (auto i : s) cnt[i]++;
  for (auto i : t) mp[i]++;
  long long lo = 0, hi = s.size(), mid, ans = 0;
  while (lo <= hi) {
    mid = (lo + hi) / 2;
    long long need = 0;
    for (auto [x, y] : mp) {
      need += max(0LL, 1LL * y * mid - cnt[x]);
    }
    if (need > cnt['?'])
      hi = mid - 1;
    else
      ans = mid, lo = mid + 1;
  }
  vector<pair<char, long long> > add;
  long long c = 0;
  for (auto [x, y] : mp) {
    long long need = max(0LL, 1LL * y * ans - cnt[x]);
    if (need == 0 || !ans) continue;
    add.push_back(pair<char, long long>(x, need));
    c += need;
  }
  long long extra = cnt['?'] - c;
  auto cur = pair<char, long long>{'z', extra};
  if (extra) add.push_back(cur);
  for (char& i : s) {
    if (i != '?') continue;
    auto& [x, y] = add.back();
    i = x, y--;
    if (!y) add.pop_back();
  }
  cout << s << endl;
}
