void main(){
  import std.stdio, std.string, std.conv, std.algorithm;
  
  auto s=readln.chomp.to!(char[]);
  auto t=readln.chomp.to!(char[]);

  if(s.length<t.length){writeln("UNRESTORABLE"); return;}

  auto mn=new char[](s.length);
  foreach(ref e; mn) e='z';
  bool none=true;
  for(auto i=0; i<=s.length-t.length; i++){
    bool ok=true;
    for(auto j=0; j<t.length; j++){
      ok&=(s[i+j]==t[j] || s[i+j]=='?');
    }
    if(ok){
      none=false;
      auto u=new char[](s.length);
      foreach(k; 0..i) u[k]=(s[k]=='?' ? 'a' : s[k]);
      foreach(k; 0..(t.length)) u[i+k]=t[k];
      foreach(k; (i+t.length)..(s.length)) u[k]=(s[k]=='?' ? 'a' : s[k]);
      if(u<mn) mn=u;
    }
  }
  
  if(none){
    writeln("UNRESTORABLE");
  }else{
    writeln(mn);
  }

}

void rd(T...)(ref T x){
  import std.stdio, std.string, std.conv;
  auto l=readln.split;
  foreach(i, ref e; x){
    e=l[i].to!(typeof(e));
  }
}