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