Integer Programming and Combinatorial Optimization