import qualified Data.ByteString.Char8 as B import qualified Data.Vector.Unboxed as VU import qualified Control.Arrow as A type Parser a = B.ByteString -> Maybe (a, B.ByteString) parseInt :: Parser Int parseInt = fmap (A.second B.tail) . B.readInt parse2 :: IO (Int, Int) parse2 = (\vec -> (vec VU.! 0, vec VU.! 1)) . VU.unfoldrN 2 parseInt <$> B.getLine main :: IO () main = do (a, b) <- parse2 let p = gcd a b let m = floor $ sqrt $ fromIntegral p if m * m == p then putStrLn "Odd" else putStrLn "Even"