main :: IO () main = putStr $ show solve solve :: Integer solve = maximum [a * b | a <- [100 .. 999], b <- [a .. 999], let s = show $ a * b, s == reverse s]