Integer Linear Programs (ILPs) are a powerful and universal tool to model various problems. However, in general, they are hard to solve. I present a block structure on the constraint matrices which makes the ILP problem solvable efficiently. Further, I give a general idea and examples of how to use these ILPs to obtain efficient algorithms for a wide range of hard problems from combinatorial optimization.