A group theoretic integer programming algorithm