#include #include using namespace std; int main() { #ifdef DEBUG freopen("26D4_in_2.txt","r",stdin); freopen("26D4_out_2.txt","w",stdout); #endif int M; cin >> M; for (int t = 0; t < M; t++) { int N, K; cin >> N >> K; vector> left(K), right(K); vector res(K); for (int i = 0; i < K; i++) { int P; cin >> P; left[i].resize(P); right[i].resize(P); for (int j = 0; j < P; j++) cin >> left[i][j]; for (int j = 0; j < P; j++) cin >> right[i][j]; cin >> res[i]; } int answer = 0; int candidates = 0; for (int c = 1; c <= N; c++) { for (int dir = 0; dir < 2; dir++) { bool lighter = (dir == 0); bool ok = true; for (int i = 0; i < K && ok; i++) { int side = 0; for (int x : left[i]) if (x == c) { side = -1; break; } if (side == 0) { for (int x : right[i]) if (x == c) { side = 1; break; } } char expect; if (side == 0) { expect = '='; } else if (side == -1) { expect = lighter ? '<' : '>'; } else { expect = lighter ? '>' : '<'; } if (expect != res[i]) ok = false; } if (ok) { if (answer != c) { candidates++; answer = c; } break; } } if (candidates > 1) break; } if (t > 0) cout << "\n"; if (candidates == 1) cout << answer << "\n"; else cout << 0 << "\n"; } return 0; }