Backtracking search with MRV, degree, and LCV heuristics. Optional forward checking prunes domains after each assignment.
Result