The Sudoku Algorithm