Clock optimal solver

As there're only 18 possible moves in WCA notation (instead of all 30 moves of the clock puzzle), we can easily solve the clock by brute-force search + Gaussian Elimination.
The average solution length of the optimal solver is about 10.8 moves, which is 2 moves less than randomly generated moves (14 * (1 - 1/12) = 12.83). 
Algorithm:
1. Enumerate all possible k distinct moves from all 18 moves. 
2. Solving the clock is equivalent to solving linear equations over the ring Z/Z12. In this case, Gaussian Elimination is a efficient method instead of conventional search algorithm, e.g. BFS.