main = do str <- getLine let [a, b, c] = map read $ splitBy '^' str let a_bc = a ^ (b ^ c) let ab_c = (a ^ b) ^ c putStrLn (show ab_c ++ " " ++ show a_bc) splitBy delimiter = foldr f [[]] where f c l@(x:xs) | c == delimiter = []:l | otherwise = (c:x):xs