Fast Matrix Multiplication Without Tears: A Constraint Programming Approach