An introduction to Integer Programming