use dp
a mode optimal solution, but sucks in performance
go from vertex with most edges
add neighbor constraint to pruning
use more neighbor constraints