A simple sudoku solver using dancing links and algorithm X