{-
?????????: Polygon - Area
URL: http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=CGL_3_A&lang=jp
?????°
19:41 ??¢??¨??§?????????
19:44 ??¢??¨??§??????
19:45 WA????????¨?????????????????????????????????e8????????????
19:47 5??????????°???°??????????????§?¶????
-}

import Data.Complex
import Control.Monad
import Control.Applicative
import System.IO

a `dot` b = realPart $ conjugate a * b
a `cross` b = imagPart $ conjugate a * b

main :: IO ()
main = do
 str <- getContents -- ?????°???????????????????????????????????????????????¨??¨??????
 let cs = map lire $ tail $ lines str -- ??????????????????????§£???
 putStrLn $ format $ show $ (*5) $ abs $ sum $ zipWith cross (last cs:cs) cs -- ???????§£??¬

-- last cs : cs 		= [e,  a,  b,  c,  d,e]
--           cs 		= [a,  b,  c,  d,  e]
-- zipWith cross ?????????	=>[e??a,a??b,b??c,c??d,d??e]
-- ?????????sum?????????abs??????????????£?????¨???????????????????????§????????????????????°?????????

format :: String -> String -- ?°???°??????????????§?¶????
format str = let (b:bs) = reverse str in reverse (b:'.':bs)

-- read?????¨?¨?????????????????????¨?????????????????§?????????????????§???
lire :: String -> Complex Integer
lire str = let[a,b] = map read $ words str in a:+b