Solving Integer Programs using the "Branch and Bound" heuristic