import Data.List

solve::[Maybe String]->String
solve [] = "UNRESTORABLE"
solve (x:xs) | x==Nothing = solve xs
             | otherwise = case x of Just s-> s
             

createPattern::String->String->[Maybe String]
createPattern s t = sort $ getPattern s t n
              where n = length s - length t

getPattern::String->String->Int->[Maybe String]
getPattern s t 0 = (createStr s t 0):[]
getPattern s t n = (createStr s t n):(getPattern s t (n-1))

createStr::String->String->Int->Maybe String
createStr s t n = if ok submid t
                  then Just (subhead ++ t ++ subtail)
                  else Nothing
                  where len = length t 
                        subtail = replace $ drop (n+len) s
                        submid = take len (drop n s)
                        subhead = replace $ take n s

replace::String->String
replace [] = []
replace (x:xs) = if x=='?'
                 then 'a':(replace xs)
                 else  x:(replace xs)

ok::String->String->Bool
ok [] [] = True
ok [] _ =  False
ok (x:xs) (y:ys) =  if (x=='?') || (x==y) 
                    then ok xs ys
                    else False

main = do
    s <- getLine
    t <- getLine
    putStrLn $ solve $ createPattern s t