Author: Jean-Claude Falmagne,David Eppstein,Sergei Ovchinnikov