main = do
  s <- getLine :: IO String
  t <- getLine :: IO String
  let f = find s t 0 []
  let rsl = if null f 
         then "UNRESTORABLE" 
         else minimum $ [remake s t i | i<-f]
  putStrLn rsl

find :: String -> String -> Int -> [Int] -> [Int]
find s t i xs
  | length s < lt = xs
  | complete || contain || allq = find (tail s) t (i+1) (i:xs)
  | otherwise = find (tail s) t (i+1) xs
    where
      lt = length t
      taken = take lt s
      contain = or $ zipWith (==) t taken
      allq = taken == (replicate lt '?')
      complete = taken == t

remake :: String -> String -> Int -> String
remake s t i = (replace prev) ++ t ++ (replace front) 
  where
    prev = take i s
    front = drop (length prev+length t) s
    replace :: String -> String
    replace [] = []
    replace (x:xs)
      | x == '?' = 'a' : replace xs
      | otherwise = x : replace xs
