import std.algorithm, std.container, std.conv, std.math, std.range, std.typecons, std.stdio, std.string;

void readV(T...)(ref T t){auto r=readln.splitter;foreach(ref v;t){v=r.front.to!(typeof(v));r.popFront;}}

void main()
{
  string s; readV(s);
  string t; readV(t);

  auto ns = s.length.to!int, nt = t.length.to!int;
 loop: foreach_reverse (i; 0..ns-nt+1) {
    auto u = s.dup;
    foreach (j; 0..nt) {
      if (u[i+j] == '?') {
        u[i+j] = t[j];
      } else {
        if (u[i+j] != t[j]) continue loop;
      }
    }

    foreach (ref ui; u)
      if (ui == '?') ui = 'a';
    writeln(u);
    return;
  }

  writeln("UNRESTORABLE");
}
