import Data.List
import Data.List.Split
import System.Environment (getArgs)

main = do
  l1 <- getLine
  let (x:unit:warp:xs) = map (read::String->Int) $ splitOn " " l1
  l2 <- getLine
  let ls = map (read::String->Int) $ splitOn " " l2
  putStrLn $ show $ sum $ map (\x -> min (x * unit) warp) $ zipWith (-) (tail ls) ls
