main :: [sys_message] main = [Stdout (show answer)] where a = 2988348162058574136915891421498819466320163312926952423791023078876139 b = 2351399303373464486466122544523690094744975233415544072992656881240319 answer = modpow a b (10^40) modpow :: num->num->num->num modpow = mp 1 where mp r b 0 m = r mp r b p m = mp r' ((b * b) mod m) (p div 2) m where r' = (r * b) mod m, if p mod 2 = 1 r' = r, otherwise