http://www.infocirc.org/townsend/problem.htm