The Algorithm Design Manual 2nd Edition