main = do
  s <- getLine
  t <- getLine
  case solve s t of
    Nothing -> do
      putStrLn "UNRESTORABLE"
    Just u -> do
      putStrLn u

solve :: String -> String -> Maybe String
solve s t = case restoreT s t of
  Nothing -> Nothing
  Just u -> Just $ map (\x -> if x == '?' then 'a' else x) u


restoreT :: String -> String -> Maybe String
restoreT [] t = Nothing
restoreT (si:s) t = 
  case restoreT s t of
    Just u -> Just (si:u)
    Nothing -> if fit s t then Just (si:(t ++ (drop (length t) s))) else Nothing

fit [] [] = True
fit (x:xs) [] = True
fit [] (x:xs) = False
fit (si:s) (ti:t) = if si == '?' || si == ti then fit s t else False