import core.bitop;
import std.algorithm;
import std.array;
import std.ascii;
import std.container;
import std.conv;
import std.format;
import std.math;
import std.range;
import std.stdio;
import std.string;
import std.typecons;

void main()
{
  string s = readln.chomp;
  string t = readln.chomp;
  string ans = '~'.repeat.take(s.length).array;
  foreach (i; 0 .. s.length - t.length + 1)
  {
    bool ok = true;
    foreach (j, c; t)
    {
      ok &= s[i + j] == '?' || s[i + j] == c;
    }
    if (ok)
    {
      char[] sub = s.map!(a => cast(char)(a == '?' ? 'a' : a)).array;
      foreach (j, c; t)
      {
        sub[i + j] = c;
      }
      ans = min(ans, sub.idup);
    }
  }
  if (ans.front == '~')
  {
    "UNRESTORABLE".writeln;
    return;
  }
  ans.writeln;
}
