http://poj.org/problem?id=1584