import std.stdio, std.algorithm, std.array, std.conv, std.typecons; void main() { int[8][] A; foreach (_; 0 .. 8) { auto row = readln[0 .. $-1]; int[8] row8; foreach (i; 0 .. 8) row8[i] = row[i] - '0'; A ~= row8; } int[8][] vecs = [A[0]]; foreach (i; 1 .. 8) { int[8][] vecs_new; foreach (vec; vecs) { int[8] vec_new; vec_new = vec[] - A[i][]; vecs_new ~= vec_new; if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; } vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new; if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; } vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new; if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; } vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new; if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; } vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new; if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; } vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new; if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; } vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new; if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; } vec = cycle(vec); vec_new = vec[] - A[i][]; vecs_new ~= vec_new; if (vecs_new[$-1] == [0, 0, 0, 0, 0, 0, 0, 0] && i == 8) { writeln("Yes"); return; } } vecs = vecs_new; } writeln("No"); } int[8] cycle(int[8] vec) { int[8] vec2; vec2 = [vec[1], vec[2], vec[3], vec[4], vec[5], vec[6], vec[7], vec[0]]; return vec2; }