parse :: String -> [(Double , Double)]
parse xs = case read ("(" ++ xs ++ ")") of
    (xa,ya,xb,yb,xc,yc,xd,yd) -> [(xa,ya),(xb,yb),(xc,yc),(xd,yd)]

-- ???ABC???????§?????????????
isObtuseAngle :: (Double , Double) -> (Double , Double) -> (Double , Double) -> Bool
isObtuseAngle a b c = ab2 + bc2 < ca2
    where
        ab2 = (fst b - fst a) ^ 2 + (snd b - snd a) ^ 2
        bc2 = (fst c - fst b) ^ 2 + (snd c - snd b) ^ 2
        ca2 = (fst a - fst c) ^ 2 + (snd a - snd c) ^ 2

solve :: [(Double , Double)] -> IO ()
solve [a,b,c,d] = print $ (\ x -> if x then "NO" else "YES") $ any id [isObtuseAngle d a b , isObtuseAngle a b c , isObtuseAngle b c d , isObtuseAngle c d a]
solve _ = undefined
    
main :: IO ()
main = getContents
    >>= mapM_ solve . map parse . lines