Source: http://www.cs.otago.ac.nz/homepages/andrew/poly/Dynamite.pdf