import std.stdio;
import std.algorithm;
import std.string;
import std.range;
import std.array;
import std.conv;
import std.complex;
import std.math;
import std.ascii;
import std.bigint;
import std.container;
import std.typecons;

auto readInts() {
	return array(map!(to!int)(readln().strip().split()));
}
auto readInt() {
	return readInts()[0];
}
auto readLongs() {
	return array(map!(to!long)(readln().strip().split()));
}
auto readLong() {
	return readLongs()[0];
}

const real eps = 1e-10;

void main(){
	while(true) {
		auto n = readInt();
		if(n == 0) return;
		int[][] p;
		for(int i; i < n; ++i) {
			p ~= readInts()[1..$].sort;
		}
		auto l = readInts()[1..$].sort;
		auto suspect = zip(iota(1, n+1), p).filter!(a => equal(l, setIntersection(a[1],l))).array;
		if(suspect.length != 1) {
			writeln(-1);
		} else {
			writeln(suspect[0][0]);
		}
	}
}