Chapter 5: Global Constraints(Sudoku)
Helmut Simonis
Cork Constraint Computation Centre Computer Science Department
University College Cork
Ireland
Outline
1 Problem
2 Program
3 Initial Propagation (Forward Checking)
4 Improved Reasoning
5 Search
What we want to introduce
Global Constraints
Powerful modelling abstractions Non-trivial propagation
Consistency Levels
Tradeoff between speed and propagation Characterisation of reasoning power Example: Alldifferent
3 variants shown
Methodology
Evaluation on Sudoku puzzle Comparing
Initial setup Search Performance
Explaining reasoning inside constraint
Link to general classification of global constraints
Outline
1 Problem
2 Program
3 Initial Propagation (Forward Checking)
4 Improved Reasoning
Problem Definition
Sudoku
Fill in numbers from 1 to 9 so that each row, column and block contain each number exactly once
4
1 2 34 5 67 8 98
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 7
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
8
1 2 34 5 67 8 91 2 3 4 5 6
7 8 9
3 2
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
6
1 2 34 5 67 8 91 2 3 4 5 6
7 8 9
8 2 5
1 2 34 5 67 8 9 1 2 34 5 6 7 8 9
9
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
8
1 2 34 5 67 8 9 1 2 34 5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 99
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
2 7
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 95
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 4
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
Problem Definition
Sudoku
Fill in numbers from 1 to 9 so that each row, column and block contain each number exactly once
4
1 2 34 5 67 8 98
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 7
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
8
1 2 34 5 67 8 91 2 3 4 5 6
7 8 9
3 2
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
6
1 2 34 5 67 8 91 2 3 4 5 6
7 8 9
8 2 5
1 2 34 5 67 8 9 1 2 34 5 6 7 8 9
9
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
8
1 2 34 5 67 8 9 1 2 34 5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 99
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
2 7
1 2 31 2 35
1 2 31 2 31 2 31 2 34 2 8 5 6 3 1 7 9
3 5 9 1 7 2 4 6 8
7 6 1 4 8 9 5 3 2
1 4 6 3 9 8 2 5 7
5 9 2 7 4 1 3 8 6
8 3 7 6 2 5 9 4 1
2 7 4 9 5 6 8 1 3
Model
A variable for each cell, ranging from 1 to 9 A 9x9 matrix of variables describing the problem Preassigned integers for the given hints
alldifferent constraints for each row, column and 3x3 block
Reminder: alldifferent
Argument: list of variables
Meaning: variables are pairwise different Reasoning: Forward Checking (FC)
When variable is assigned to value, remove the value from all other variables
If a variable has only one possible value, then it is assigned
If a variable has no possible values, then the constraint fails
Constraint is checked whenever one of its variables is
assigned
Outline
1 Problem
2 Program
3 Initial Propagation (Forward Checking)
4 Improved Reasoning
5 Search
Declarations
:-module(sudoku).
:-export(top/0).
:-lib(ic).
top:-
problem(Matrix),
model(Matrix),
writeln(Matrix).
Data
problem([]([](4, _, 8, _, _, _, _, _, _),
[](_, _, _, 1, 7, _, _, _, _),
[](_, _, _, _, 8, _, _, 3, 2),
[](_, _, 6, _, _, 8, 2, 5, _),
[](_, 9, _, _, _, _, _, 8, _),
[](_, 3, 7, 6, _, _, 9, _, _),
[](2, 7, _, _, 5, _, _, _, _),
[](_, _, _, _, 1, 4, _, _, _),
[](_, _, _, _, _, _, 6, _, 4))).
Main Program
model(Matrix):-
Matrix[1..9,1..9] :: 1..9, (for(I,1,9),
param(Matrix) do
alldifferent(Matrix[I,1..9]), alldifferent(Matrix[1..9,I]) ),
(multifor([I,J],[1,1],[7,7],[3,3]), param(Matrix) do
alldifferent(flatten(Matrix[I..I+2,J..J+2]))
Domain Visualizer
4
1 2 34 5 67 8 98
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 7
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
8
1 2 34 5 67 8 91 2 3 4 5 6
7 8 9
3 2
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
6
1 2 34 5 67 8 91 2 3 4 5 6
7 8 9
8 2 5
1 2 34 5 67 8 9 1 2 34 5 6 7 8 9
9
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
8
1 2 34 5 67 8 9 1 2 34 5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 99
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
2 7
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 95
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 4
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
6
1 2 34 5 67 8 94
Problem shown as matrix
Each cell corresponds to a variable
Instantiated: Shows integer value (large)
Uninstantiated: Shows values in domain
Constraint Visualizer
4
1 25 68
2 359 236 9
2 3 56 9 1
5 7
1 6 7 9 1
5 6 7 9 3
6 9 2
5 6 3
5
9
1 7
2 3569 4 58 4 6
9 5 6 8 9 6
7 9 1
5 6 1
5 94 5
9
8
569 1 4 57
3 2
1 4 6
7 39 39
8 2 5
7 395 9 2
47 3 3 41 3 7
1 3
4 7
8
17 368 3 7 6 2 5 9 4 1 2 7
14 393 4
8 9
5
1 369 1 3 48 1 4 6
9 1 3
6 8 9 3
6 7 9 2 5 6 8
3 5
9 2 3 5
7 8 9
1 4
7 853 26 7 9
3 5 6 7 8 9 3
7 9 1 2
5 8
1 3 5
9 2 3 5 7 8 9
23 9
1 2 3 5
7 9
6
1 27 94
Problem shown as matrix
Currently active constraint highlighted
Values removed at this step shown in blue
Values assigned at this step shown in red
Outline
1 Problem
2 Program
3 Initial Propagation (Forward Checking)
4 Improved Reasoning
5 Search
Initial State (Forward Checking) 4
1 2 34 5 67 8 98
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
1 7
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
3 2
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
8 2 5
1 2 34 5 67 8 9 1 2 34 5 6
7 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 9 1 2 34 5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 92 7
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
5
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
Propagation Steps (Forward Checking) 4
1 2 34 5 67 8 98
1 2 34 5 67 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
1 7
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
3 2
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
8 2 5
1 2 34 5 67 8 9 1 2 34 5 6
7 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 9 1 2 34 5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 92 7
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
5
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
1 4
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9 1 2 3 1 2 31 2 31 2 3 1 2 31 2 3 1 2 3
Propagation Steps (Forward Checking) 4
1 2 3475 68 98
1 2 347 5 6891 2 3 45 6 78 9
1 2 3 45 6 78 9
1 2 3 4 5 6 7 89
1 2 3 45 6 78 9
1 2 3 45 6 78 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
1 7
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
3 2
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
8 2 5
1 2 34 5 67 8 9 1 2 34 5 6
7 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 9 1 2 34 5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 92 7
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
5
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 2 3 1 2 31 2 31 2 3
1 4
1 2 3 1 2 31 2 3Propagation Steps (Forward Checking) 4
1 2 375 698
1 2 37 5 691 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 23 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
1 7
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 23
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
3 2
1 23 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
8 2 5
1 2 34 5 67 8 9 1 234 5 6
7 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 9 1 234 5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 92 7
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
5
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 23
4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
1 4
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9 1 23 1 2 31 2 31 2 3 1 2 31 2 3 1 2 3
Propagation Steps (Forward Checking) 4
1 2 375 698
1 2 37 5 691 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 3
5 6 7 8 9
12 3 4 5 6 78 9
12 3 4 5 6
78 9
1 7
14 5 672 38 9 1 2 3 4 5 6 7 8 912 3 4 5 6 78 9
12 3 4 5 6 78 9
1 3
5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
3 2
1 3
5 6 7 8 9
1 2 3 4 5 6
7 8 9
6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
8 2 5
1 2 34 5 67 8 91 3
5 6
7 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 91 3
5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 92 7
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
5
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 3 1 2 31 2 31 2 3
1 4
1 2 3 1 2 31 2 3Propagation Steps (Forward Checking) 4
1 275 6398
1 2 37 5 691 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 3 4 5 6 8 9
2 3 4 5 6
8 9
1 7
4 5 62 38 9 2 3 4 5 6 8 92 3 4 5 6 8 9
2 3 4 5 6 8 9
1 3
5 6 7 8 9
1 2 3 4 5 6 78 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
3 2
1 3
5 6 7 8 9
1 2 3 4 5 6
78 9
6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
8 2 5
1 2 34 5 67 8 91 3
5 6
7 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 91 3
5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 92 7
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
5
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 3
5 6 7 8 9
1 2 3 4 5 6 78 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
1 4
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9 1 3 1 2 31 2 31 2 3 1 2 31 2 3 1 2 3
Propagation Steps (Forward Checking) 4
1 25 68
1 2 37 5 691 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5 6
8 9
1 7
4 5 62 38 9 2 3 4 5 6 8 92 3 4 5 6 8 9
2 3 4 5 6 8 9
1 3
5 6 7 89
12 4 5 6
8 12 3 4 5 6 78 9
1 2 3 4 5 6
7 89
8
14 5 672 38 9 1 2 3 4 5 67 89
3 2
1 3
5 6 7 8 9
1 2 4 5 6
8
6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
8 2 5
1 2 34 5 67 8 91 3
5 6
7 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 91 3
5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 92 7
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
5
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 3 1 2 1 2 31 2 3
1 4
1 2 3 1 2 31 2 3Propagation Steps (Forward Checking) 4
1 25 68
1 2 37 5 691 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5 6
8 9
1 7
4 5 62 38 9 2 3 4 5 6 8 92 3 4 5 6 8 9
2 3 4 5 6 8 9 1
5 6
7 9
1 4 5 6
1 4 5 6
7 9
1 4 5 6
7 9
8
14 5 67 9 1 4 5 67 9
3 2
1 3
5 6 7 8 9
1 2 4 5 6
8
6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
8 2 5
1 2 34 5 67 8 91 3
5 6
7 8 9
9
1 2 34 57 8 69 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 91 3
5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 92 7
1 2 34 57 8 69 1 2 3 4 5 67 8 9
5
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 3
5 6 7 8 9
1 2 4 5 6
8 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
1 4
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9 1 3 1 2 1 2 31 2 3 1 2 31 2 3 1 2 3
Propagation Steps (Forward Checking) 4
1 25 68
1 2 37 5 691 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5
9
1 7
4 5 62 38 9 2 3 4 5 6 8 92 3 4 5 6 8 9
2 3 4 5 6 8 9 1
5 6
7 9
1 4 5 6
1 4 5
9 1 4 5 6
7 9
8
14 5 67 9 1 4 5 67 9
3 2
1 3
5 6 7 89
12 45 6
8
6
147 25 6839 12 3 45 678 9
8 2 5
14725 68 391 3
5 6
7 8 9
9
1 2 34 5 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 91 3
5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 92 7
1 2 34 5 9 1 2 3 4 5 67 8 9
5
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 3 1 2 1 2 31 2 3
1 4
1 2 3 1 2 31 2 3Propagation Steps (Forward Checking) 4
1 25 68
17 2 35691 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5
9
1 7
4 5 62 38 9 2 3 4 5 6 8 92 3 4 5 6 8 9
2 3 4 5 6 8 9 1
5 6
7 9
1 4 5 6
1 4 5
9 1 4 5 6
7 9
8
14 5 67 9 1 4 5 67 9
3 2
1 3
7 9
1
4
6
147 391 3
4
7 9
8 2 5
147 391 3
5 6
7 8 9
9
1 2 34 5 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 67 8 91 3
5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 92 7
1 2 34 5 9 1 2 3 4 5 67 8 9
5
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 3
5 6 7 8 9
1 2 4 5 6
8 1 2 3 4 5
9 1 2 3 4 5 6
7 8 9
1 4
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9 1 3 1 2 1 2 31 2 3 1 2 31 2 3 1 2 3
Propagation Steps (Forward Checking) 4
1 25 68
7 2 3591 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5
9
1 7
4 5 62 38 9 2 3 4 5 6 8 92 3 4 5 6 8 9
2 3 4 5 6 8 9 1
5 6
7 9
1 4 5 6
1 4 5
9 4 5
7 9
8
14 5 67 9 1 4 5 67 9
3 2
1 3
7 9
1
4
6
47 391 3
4
7 9
8 2 5
147 391 3
5 6
7 8 9
9
1 2 34 5 9 2 3 4 5 7 8 91 2 3 4 5 6 78 9
1 2 3 4 5 6 78 9
1 2 3 4 5 6
7 8 9
8
1 2 34 5 678 91 3
5 6
7 8 9
3 7 6
1 2 34 5 67 8 9 1 2 3 4 5 67 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 92 7
1 2 34 5 9 2 3 4 57 8 9
5
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 3 1 2 1 2 3 2 3
1 4
1 2 3 1 2 31 2 3Propagation Steps (Forward Checking) 4
1 25 68
7 2 35912 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5
9
1 7
4 5 62 38 9 2 3 4 5 6 8 92 3 4 5 6 8 9
2 3 4 5 6 8 9 1
5 6
7 9
1 4 5 6
1 4 5
9 4 5
7 9
8
14 5 67 9 1 4 5 67 9
3 2
1 3
7 9
1
4
6
47 391 3
4
7 9
8 2 5
147 391 3
5 6
7
9
1 2 34 5 4 57 2 3 12 3 45 6 71 2 3 4 5 6 7
1 2 3 4 5 6
7
8
1 2 34 5 671 3
5 6
7 8 9
3 7 6
147 82 35 69 1 2 3 4 5 67 8 9
9
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 92 7
1 2 34 5 9 2 3 4 57 8 9
5
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 3
5 6 7 8 9
1 2 4 5 6
8 1 2 3 4 5
9 2 3 4 5
7 8 9
1 4
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9 1 3 1 2 1 2 3 2 3 12 3 1 2 3 1 2 3
Propagation Steps (Forward Checking) 4
1 25 68
7 2 3592 3 6 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5
9
1 7
4 5 62 38 9 2 3 4 5 6 8 92 3 4 5 6 8 9
2 3 4 5 6 8 9 1
5 6
7 9
1 4 5 6
1 4 5
9 4 5
7 9
8
14 5 67 9 1 4 5 67 9
3 2
1 3
7 9
1
4
6
47 393 4
9
8 2 5
147 391 3
5 6
7
9
1 2 34 5 4 57 2 3 2 34 6
1 2 3 4 5 6 7
1 2 3 4 5 6
7
8
1 2 34 5 671 3
56
7 89
3 7 6
42 369 1 2 3 4 5 678 9
9
1 24 578 369 1 2 3 4 5 6 78 92 7
1 2 34 5 9 2 3 4 57 8 9
5
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 1 3 1 2 1 2 3 2 3
1 4
1 2 3 1 2 31 2 3Propagation Steps (Forward Checking) 4
1 25 68
7 2 3592 3 6 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5
9
1 7
42 35 68 9 2 3 4 5 6 8 92 3 4 5 6 8 9
2 3 4 5 6 8 9 1
5 6
7 9
1 4 5 6
1 4 5
9 4 5
7 9
8
1475 69 1 4 5 67 9
3 2
1 3
7 9
1
4
6
47 393 4
9
8 2 5
147 391 3
5 6
7
9
1 2 34 5 4 57 2 3 2 34 6
1 2 3 45 6 7
1 2 3 4 5 6
7
8
1 2 34 5 67 15
8
3 7 6
42 1 24589
1 24 58 1 2 4 5 82 7
1 2 34 5 9 2 3 4 57 8 9
5
1 2 3475 68 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 3
5 6 7 8 9
1 2 4 5 6
8 1 2 3 4 5
9 2 3 4 5
7 8 9
1 4
1 2 34 5 67 8 9 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9 1 3 1 2 1 2 3 2 3 2 3 1 2 3 1 2 3
Propagation Steps (Forward Checking) 4
1 25 68
7 2 3592 3 6 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5
9
1 7
2 35 69 2 3 4 5 6 8 92 3 4 5 6 8 9
2 3 4 5 6 8 9 1
5 6
7 9
1 4 5 6
1 4 5
9 4 5
7 9
8
175 69 1 4 5 67 9
3 2
1 3
7 9
1
4
6
47 393 4
9
8 2 5
147 391 3
5 6
7
9
1 2 34 5 4 57 2 3 2 34 6
1 2 3 5 6 7
1 2 3 4 5 6
7
8
1 2 34 5 67 15
8
3 7 6
42 1 259
1 24 58 1 2 4 5 82 7
1425 39 23 4 57 8 9
5
1725 369 1 23 4 56 7 8 912 3 45 6 78 9
12 3 45 6 78 9 1 3 1 2 1 2 3 2 3
1 4
1 2 3 1 2 31 2 3Propagation Steps (Forward Checking) 4
1 25 68
7 2 3592 3 6 9
1 2 3 5 6
7 9
1 23 56
7 9
1 2 3 5 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5
9
1 7
2 35 69 23 4 5 6 892 3 4 5 6 8 9
2 3 4 5 6 8 9 1
5 6
7 9
1 4 5 6
1 4 5
9 4 5
7 9
8
175 69 1 4 5 67 9
3 2
1 3
7 9
1
4
6
47 393 4
9
8 2 5
147 391 3
5 6
7
9
1 2 34 5 4 57 2 3 2 34 6
1 2 3 5 6 7
1 23 4 5 6
7
8
1 2 34 5 67 15
8
3 7 6
42 1 259
1 24 58 1 2 4 5 82 7
14 39 3 48 9
5
1 3691 3
4 6
89
1 3
4 6
8 9
1 3
4 6
8 9
1 3
5 6 7 8 9
1 2 4 5 6
8 1 2 3 4 5
9 2 3 4 5
7 8 9
1 4
14 57 82369 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9 1 3 1 2 1 2 3 2 3 2 3 1 2 3 1 2 3
Propagation Steps (Forward Checking) 4
1 25 68
7 2 3592 3 6 9
1 2 3 5 6
7 9
1 3
5 7
1 2 3 5 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5
9
1 7
2 35 69 3 4 58 2 3 4 5 6 8 9
2 3 4 5 6 8 9 1
5 6
7 9
1 4 5 6
1 4 5
9 4 5
7 9
8
175 69 1 4 57
3 2
1 3
7 9
1
4
6
47 393 4
9
8 2 5
147 391 3
5 6
7
9
1 2 34 5 4 57 2 3 2 34 6
1 2 3 5 6 7
1 3
4 5
7
8
1 2 34 5 67 15
8
3 7 6
42 1 259
1 24 58 1 2 4 5 82 7
14 39 3 48 9
5
1 3691 3
4 8
1 3
4 6
8 9
1 3
4 6
8 9 1 3 12 12 3 2 3
1 4
1 3 12 3 12 3Propagation Steps (Forward Checking) 4
1 25 68
7 2 3592 3 6 9
1 2 3 5 6
7 9
1 3
5 7
1 2 3 5 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5
9
1 7
2 35 69 3 4 58 2 3 45 6 8 9
2 3 4 5 6 8 9 1
5 6
7 9
1 4 5 6
1 4 5
9 4 5
7 9
8
175 69 1 4 57
3 2
1 3
7 9
1
4
6
47 393 4
9
8 2 5
147 391 3
5 6
7
9
1 2 34 5 4 57 2 3 2 34 6
1 2 3 5 6 7
1 3
4 5
7
8
1 2 34 5 67 15
8
3 7 6
42 1 259
1 2458 1 2 4 5 82 7
14 39 3 48 9
5
1 3691 3
4 8
1 3
4 6
8 9
1 3
4 6
8 9 3
5 6 7 8 9
2 5 6 8
2 3 5
9 2 3 5
7 8 9
1 4
7 853 2 3 5 6 78 92 3 5 6 7 8 9 1 3 1 2 1 2 3 2 3 2 3 1 2 3 1 2 3
Propagation Steps (Forward Checking) 4
1 25 68
7 2 3592 3 6 9
1 2 3 5 6
7 9
1 3
5 7
1 2 6
7 9
1 2 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5
9
1 7
2 35 69 3 4 58 2
4 6
9 2 3 4 5 6 8 9 1
5 6
7 9
1 4 5 6
1 4 5
9 4 5
7 9
8
175 69 1 4 57
3 2
1 3
7 9
1
4
6
47 393 4
9
8 2 5
147 391 3
5 6
7
9
1 2 34 5 4 57 2 3 2 34 6
1 2 3 5 6 7
1 3
4 5
7
8
1 2 34 5 67 15
8
3 7 6
42 1 259
1 24 1 24 582 7
14 39 3 48 9
5
1 3691 3
4 8
1
4 6
9
1 3
4 6
8 9
3 2 2 3 2 3
1 4
3 2 2 3Propagation Steps (Forward Checking) 4
1 25 68
7 2 3592 3 6 9
1 2 3 5 6
7 9
1 3
5 7
1 2 6
7 9
12 3 5 6
7 9
3 5 6 8 9
2 4 5 6
8 2 3 4 5
9
1 7
2 35 69 3 4 58 2
4 6
9 2 3 45 6 8 9 1
5 6
7 9
1 4 5 6
1 4 5
9 4 5
7 9
8
175 69 1 4 57
3 2
1 3
7 9
1
4
6
47 393 4
9
8 2 5
147 391 3
5 6
7
9
1 2 34 5 4 57 2 3 2 34 6
1 2 3 5 6 7
1 3
4 5
7
8
14725 63 15
8
3 7 6
42 1 259
1 24 142582 7
14 39 3 48 9
5
1 3691 3
4 8
1
4 6
9
1 3
4 6
8 9 3
5 6 7 8 9
2 5 6 8
2 3 5
9 2 3 5
7 8 9
1 4
7 853 26
7 9
2 3 5 6 7 8 9 1 3 1 2 1 2 3 2 3 2 3 1 2 3 1 2
Propagation Steps (Forward Checking) 4
1 25 68
7 2 3592 3 6 9
1 2 3 5 6
7 9
1 3
5 7
1 2 6
7 9
1 3
5 6
7 9
3 5 6 89
2 45 6
8 2 3 45
9
1 7
2 35 69 3 4 58 2
4 6
9 3 5 6 8 9 1
5 6
7 9
1 45 6
1 45
9 4 5
7 9
8
175 69 1 4 57
3 2
1 3
7 9
1
4
6
47 393 4
9
8 2 5
17 391 3
5 6
7
9
1 2 34 5 4 57 2 3 2 34 6
1 2 3 5 6 7
1 3
4 5
7
8
175 63 15
8
3 7 6
42 1 259
1 24 1582 7
14 39 3 48 9
5
1 3691 3
4 8
1
4 6
9
1 3
6 8 9
3 2 2 3 2 3
1 4
3 2 3Propagation Steps (Forward Checking) 4
1 25 68
7 2 3592 3 6 9
12 3 5 6
7 9
1 3
5 7
1 2 6
7 9
1 3
5 6
7 9
3 5 6 9
2 5 6
2 3 5
9
1 7
2 35 69 3 4 58 2
4 6
9 3 5 6 8 9 1
5 6
7 9
1 5 6
1 5
9 4 5
7 9
8
175 69 1 4 57
3 2
1 3
7 9
1
4
6
47 393 4
9
8 2 5
17 391 3
5 6
7
9
1 2 34 5 4 57 2 3 2 34 6
1 2 3 5 6 7
1 3
4 5
7
8
175 63 15
8
3 7 6
42 1 259
1 24 1582 7
14 39 3 48 9
5
1 3691 3
4 8
1
4 6
9
1 3
6 8 9 3
5 6 7 8 9
2 5 6 8
2 3 5
9 2 3 5
7 8 9
1 4
7 853 26
7 9
3 5 6 7 8 9 1 3 1 2 1 2 3 2 3 2 3 1 2 3 1 2
Propagation Steps (Forward Checking) 4
1 25 68
2 3592 3 6 9
2 3 5 6 9
1 3
5 7
12 6
7 9
1 3
5 6
7 9
3 5 6 9
2 5 6
2 3 5
9
1 7
2 35 69 3 4 58 2
4 6
9 3 5 6 8 9 1
5 6
7 9
1 5 6
1 5
9 4 5
9
8
5 69 1 4 57
3 2
1 3
7 9
1
4
6
47 393 4
9
8 2 5
17 391 3
5 6
7
9
1 2 34 5 4 57 2 3 2 34 6
1 2 3 5 6 7
1 3
4 5
7
8
175 63 15
8
3 7 6
42 1 259
1 24 1582 7
14 39 3 48 9
5
1 3691 3
4 8
1
4 6
9
1 3
6 8 9
3 2 2 3 2 3
1 4
3 2 3Propagation Steps (Forward Checking) 4
1 25 68
2 3592 3 6 9
2 3 5 6 9 1
5 7
1 6
7 9
1 5 6
7 9
3 56 9
2 5 6
2 3 5
9
1 7
2 35 69 4 58
4 6
9 5 6 8 9 1
56
7 9
1 5 6
1 5
9 4 5
9
8
5 69 1 4 57
3 2
1 4 6
47 39 3 49
8 2 5
17 395 9 2
47 253 2 34 6
12 3 5 6 7
1 3
4 5
7
8
175 368 3 7 6
42 1 259
1 24 1582 7
14 39 3 48 9
5
1 3691 3
4 8
1
4 6
9
1 3
6 8 9 3
56 7 89
2 5 6 8
2 3 5
9 2 3 5
7 8 9
1 4
7 853 26
7 9
3 5 6 7 8 9 1 3 1 2 12 3 2 3 2 3 1 2 3 1 2
Propagation Steps (Forward Checking) 4
1 25 68
2 3592 3 6 9
2 3 5 6 9 1
5 7
1 6
7 9
1 5 6
7 9
3 6 9
2 5 6
3 5
9
1 7
2 35 69 4 58
4 6
9 5 6 8 9 6
7 9
1 5 6
1 5
9 4 5
9
8
5 69 1 4 57
3 2
1 4 6
7 39 39
8 2 5
7 395 9 2
47 3 34 6
1 3
6 7
1 3
4
7
8
17 368 3 7 6
42 1 259
1 24 152 7
14 393 4
8 9
5
1 3691 3
4 8
1
4 6
9
1 3
6 8 9
3 2 3 2 3
1 4
3 2 3Propagation Steps (Forward Checking) 4
1 25 68
2 3592 3 6 9
2 3 5 6 9 1
5 7
1 6
7 9
1 5 6
7 9
3 6 9
2 5 6
3 5
9
1 7
2 35 69 4 58
4 6
9 5 6 8 9 6
7 9
1 5 6
1 5
9 4 5
9
8
5 69 1 4 57
3 2
1 4 6
7 39 39
8 2 5
7 395 9 2
47 3 3 41 3
7
1 3
4
7
8
17 368 3 7 6 2 5 9 4 1 2 7
14 393 4
8 9
5
1 3691 3
4 8
1
4 6
9
1 3
6 8 9 3
6
7 9
2 5 6 8
3 5
9 2 3 5
7 8 9
1 4
7 853 26
7 9
3 5 6 7 8 9
3 1 2 1 3 2 3 2 31 2 3 1 2
Propagation Steps (Forward Checking) 4
1 25 68
2 3593 6 9
2 3 6 9 1
5 7
1 6
7 9
5 6
7 9
3 6 9
2 5 6
3 5
9
1 7
2 369 4 58 6 9
5 6 8 9 6
7 9
1 5 6
1 5
9 4 5
9
8
691 4 5
7
3 2
1 4 6
7 39 39
8 2 5
7 35 9 2
47 3 3 41 3
7 3
7
8
7 368 3 7 6 2 5 9 4 1 2 7
14 393 4
8 9
5
1 3691 3
4 8
1 6 9
3 6 8 9
3 2 3 2 3
1 4
3 2 3Propagation Steps (Forward Checking) 4
1 25 68
2 3593 6 9
2 3 6 9 1
5 7
1 6
7 9
5 6
7 9
3 6 9
2 5 6
3 5
9
1 7
2 369 4 58 6 9
5 6 8 9 6
7 9
1 5 6
1 5
9 4 5
9
8
691 4 5
7
3 2
1 4 6
7 39 39
8 2 5
7 35 9 2
47 3 3 41 3
7 3
7
8
7 368 3 7 6 2 5 9 4 1 2 7
14 393 4
8 9
5
1 3691 3
4 8
1 6 9
3 6 8 9 3
6 9
5 6 8
3 5
9 2 3 5
7 8 9
1 4
7 853 26
7 9
3 5 6 7 8 9
3 1 1 3 2 3 312 3 1 2
Propagation Steps (Forward Checking) 4
1 25 68
2 3593 6 9
2 3 6 9 1
5 7
1 6
7 9
5 6
7 9
3 6 9
2 5 6
3 5
9
1 7
2 369 4 58 6 9
5 6 8 9 6
7 9
1 5 6
1 5
9 4 5
9
8
691 4 5
7
3 2
1 4 6
7 39 39
8 2 5
7 35 9 2
47 3 3 41 3
7 3
7
8
7 368 3 7 6 2 5 9 4 1 2 7
14 393
8 9
5
3691 3
4 8
1 6 9
3 6 8 9
3 3 2 3
1 4
3 2 3Propagation Steps (Forward Checking) 4
1 25 68
2 3593 6 9
2 3 6 9 1
5 7
1 6
7 9
5 6
7 9
3 6 9
2 5 6
3 5
9
1 7
2 369 4 58 6 9
5 6 8 9 6
7 9
1 5 6
1 5
9 4 5
9
8
691 4 5
7
3 2
1 4 6
7 39 39
8 2 5
7 35 9 2
47 3 3 41 3
7 3
7
8
7 368 3 7 6 2 5 9 4 1 2 7
14 393
8 9
5
3691 3
8 1
9 3 8 9 3
6 9
5 6 8
3 5
9 2 3
7 8 9
1 4
7 853 27 9
3 5 7 8 9
3 1 1 3 2 3 3 2 3 1 2
After Setup (Forward Checking) 4
1 25 68
2 3593 6 9
2 3 6 9 1
5 7
1 6
7 9
5 6
7 9
3 6 9
2 5 6
3 5
9
1 7
2 369 4 58 6 9
5 6 8 9 6
7 9
1 5 6
1 5
9 4 5
9
8
691 4 5
7
3 2
1 4 6
7 39 39
8 2 5
7 35 9 2
47 3 3 41 3
7 3
7
8
7 368 3 7 6 2 5 9 4 1 2 7
14 393
8 9
5
3691 3
8 1
9 3 8 9