Solver for SafeCracker 50 puzzle