#include<bits/stdc++.h>
using namespace std;
typedef pair<int, int> P;

int n;
int m;

vector<P> rot(vector<P> va){
	for(int i = 1; i < va.size(); i++){
		va[i].first -= va[0].first;
		va[i].second -= va[0].second;
	}
	va[0] = P(0, 0);
	if(va[0].first == va[1].first){
		int par = (va[1].second > va[0].second ? 1 : -1);
		for(int i = 0; i < va.size(); i++){
			va[i].first *= par;
			va[i].second *= par;
		}
		return va;
	}
	int par = (va[1].first > va[0].first ? -1 : 1);
	int par2 = (va[1].first > va[0].first ? 1 : -1);
	for(int i = 0; i < va.size(); i++){
		int buf = va[i].first;
		va[i].first = par * va[i].second;
		va[i].second = par2 * buf;
	}
	return va;
}

bool same(vector<P> va, vector<P> vb){
	if(va.size() != vb.size()) return false;
	for(int i = 0; i < va.size(); i++){
		if(va[i].first != vb[i].first || va[i].second != vb[i].second) return false;
	}
	return true;
}

int main(){
	for(;;){
		scanf("%d", &n);
		if(n == 0) break;
		scanf("%d", &m);
		vector<P> va(m), va2(m);
		for(int i = 0; i < m; i++){
			scanf("%d %d", &va[i].first, &va[i].second);
			va2[m - i - 1].first = va[i].first;
			va2[m - i - 1].second = va[i].second;
		}
		va = rot(va);
		va2 = rot(va2);
		for(int i = 0; i < n; i++){
			scanf("%d", &m);
			vector<P> vb(m);
			for(int j = 0; j < m; j++) scanf("%d %d", &vb[j].first, &vb[j].second);
			vb = rot(vb);
			if(same(va, vb) || same(va2, vb)) printf("%d\n", i + 1);
		}
		printf("+++++\n");
	}
}

