import qualified Data.Map as M
main = do
let m
= M
.fromListWith
(+) $ zip xs
(repeat 1) (a
,b
) = M
.partitionWithKey
(\k
_ -> reverse k
== k
) m
(c
,d
) = M
.partitionWithKey
(\k
_ -> reverse k
> k
) b
aW1wb3J0IHF1YWxpZmllZCBEYXRhLk1hcCBhcyBNCm1haW4gPSBkbwogIHhzIDwtIGZtYXAgKHRhaWwgLiBsaW5lcykgZ2V0Q29udGVudHMKICBsZXQgbSA9IE0uZnJvbUxpc3RXaXRoICgrKSAkIHppcCB4cyAocmVwZWF0IDEpCiAgICAgIChhLGIpID0gTS5wYXJ0aXRpb25XaXRoS2V5IChcayBfIC0+IHJldmVyc2UgayA9PSBrKSBtCiAgICAgIChjLGQpID0gTS5wYXJ0aXRpb25XaXRoS2V5IChcayBfIC0+IHJldmVyc2UgayA+IGspIGIKICAgICAgcyA9IGNvbmNhdE1hcCAoXChrLHgpIC0+IGNvbmNhdCAkIHJlcGxpY2F0ZSB4IGspICQgTS50b0FzY0xpc3QKICAgICAgICAkIE0udW5pb24gKE0ubWFwIChgZGl2YDIpIGEpIChNLmludGVyc2VjdGlvbldpdGggbWluIGMgKE0ubWFwS2V5cyByZXZlcnNlIGQpKQogIHB1dFN0ckxuICQgcyArKyBjb25jYXQgKHRha2UgMSBbayB8IChrLHgpIDwtIE0udG9Bc2NMaXN0IGEsIG9kZCB4XSkgKysgcmV2ZXJzZSBz