import Control.Applicative import Control.Monad import System.IO import Data.List main :: IO () main = do n_temp <- getLine let n = read n_temp :: Int a_temp <- getLine let a = map read $ words a_temp :: [Int] putStrLn $ show $ minimum $ mapDiffs $ sort a where mapDiffs :: [Int] -> [Int] mapDiffs [] = [] mapDiffs (x:[]) = [] mapDiffs (x:y:zs) = [abs(x-y)] ++ mapDiffs (y:zs) getMultipleLines :: Int -> IO [String] getMultipleLines n | n <= 0 = return [] | otherwise = do x <- getLine xs <- getMultipleLines (n-1) let ret = (x:xs) return ret