import std.stdio;
import std.string;
import std.array;
import std.conv;
import std.algorithm;
import std.range;

uint readNumber() {
	return readln.chomp.to!uint;
}

void main() {
	uint[3 * 3] numbers;
	bool[3 * 3] checked;

	size_t contain(uint x,out size_t index) {
		foreach (size_t i, n;numbers) {
			if (n == x) {
				index = i;
				return true;
			}
		}

		return false;
	}

	bool isBingo() {
		auto c = checked;

		if (c[0] && c[1] && c[2]) return true;
		if (c[3] && c[4] && c[5]) return true;
		if (c[6] && c[7] && c[8]) return true;

		if (c[0] && c[3] && c[6]) return true;
		if (c[1] && c[4] && c[7]) return true;
		if (c[2] && c[5] && c[8]) return true;
 
		if (c[0] && c[4] && c[8]) return true;
		if (c[2] && c[4] && c[6]) return true;

		return false;
	}
	
	foreach (i;0..3) {
		numbers[i * 3..(i + 1) * 3] = readln.chomp.split(" ").map!(to!uint).array;
	}

	auto n = readNumber;
	auto r = (() => readln.chomp.to!uint).repeat(n).map!"a()";

	foreach (x;r) {
		size_t found;

		if (contain(x, found)) {
			checked[found] = true;
		}
	}
	if (isBingo) {
		writeln("Yes");
	} else {
		writeln("No");
	}
}
