import Data.Bool
import Data.Maybe
import Data.List

main = putStrLn . solve . lines =<< getContents

solve :: [String] -> String
solve [s,t] = maybe "UNRESTORABLE" (rpl s t) $ fnd s t 0

rpl s t i = f ++ t ++ b
    where
        f = map rpl' $ take i s
        b = map rpl' $ drop (length t + i) s

rpl' '?' = 'a'
rpl' x = x

fnd s t i
    | length s < length t + i = Nothing
    | otherwise = bool (fnd s t (i+1)) (return i) $ isMatched s' t
    where
        s' = drop i s

isMatched s t = and $ zipWith (\s' t' -> s' == '?' || s' == t') s t
