Abelian Hidden Subgroup Problem