A4 == (1,2,3); B4 == (1,2,3,5)
if B4 == 3 => A4 == (1, 2), both of which cause A4, B4, C4, and D4 to be visible from the left.
=> B4 == (1,2,5)
B6 == (1,2,3);
B3 == (1,2);
B2 == (1,5);
B6 is only cell in B that can be 3.
B6 == 3.
F7 == (1,2,3);
F6 == (1,2);
F5 == (2,3,4);
F4 == (1,2,3,5,6);
F3 == (1,2,6);
F2 == (1,4,5);
In F, the '6' is in F3 or F4.
F2 is not visible from the top.
there are only 2 squares in F not visible.
if F3 == (1,2), F3 is not visible from the top;
also, (F3, F6) == (1,2) => F7 == 3 => F6 is not visible from the top.
This'd give 3 non-visible cells; thus, F3 != (1,2)
F3 == 6.
(E3, E6) == (1,2);
E2 == (1,4), but 1 is already used.
E2 == 4.
F5 is the only cell in F that can be '4'.
F5 == 4.
E5 = (1,2,3), but (E3, E6) == (1,2);
E5 == 3.
A5 == 2.
E4 = (1,2,6), but (E3, E6) == (1,2);
E4 == 6.
F2 == (1, 5);
F4 == (1,2,3,5);
if F4 == 5 => F2 == 1 => F6 = 2;
if F4 == (1,2,3), then F4 is not visible because of F5 => F6 must be visible => F6 = 2;
F6 == 2.
G7 is the only cell in the 7-row that can be 2.
G7 == 2.
E6 == 1.
E3 == 2.
B3 == 1.
B2 == 5.
F2 == 1.
F4 is the only cell in F that can be 5.
F4 == 5.
F7 == 3.
A7 == 1.
A4 == 3.
B4 == 2.
G4 == 1.
thats every cell.