Applied abstract algebra - Lidl, Rudolf. (Springer, 1998)