http://www.4clojure.com/problem/113