import Control.Monad import Control.Applicative import Data.List import qualified Data.Map as Map import Data.Array import qualified Data.ByteString.Char8 as BC import Data.Maybe readInts = map (fst . fromJust . BC.readInt) . BC.words <$> BC.getLine readInt :: BC.ByteString -> Int readInt = fst . fromJust . BC.readInt strToInt s = (read :: String -> Int) s main = do n <- readLn xsn <- map readInt . BC.words <$> BC.getLine let xs = sort xsn if n==1 then print 0 else print $ maximum [abs((xs!!i)-(xs!!(i+1))) | i <-[1..(n-2)]]