#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define rep(i,n) for(int i=0;(i)<(n);(i)++)
typedef struct{
    int len;
    int dir;
}Line;
Line line[10];
int cal(int d,int m,Line x[10]){
    int j,flag=1;
    for(j=0;j<m-1;j++){
        if(x[j].len!=line[j].len||(x[j].dir+d)%4!=line[j].dir){
            flag=0; break;}
    }if(flag) return 1;
    for(j=0;j<m-1;j++){
        if(x[m-2-j].len!=line[j].len||(x[m-2-j].dir+2+d)%4!=line[j].dir)
            return 0;
    }
    return 2;
}
int main(void){
    while(1){
        int n,m1,cnt=0;
        scanf("%d",&n);
        if(n==0) break;
        int y,x;
        scanf("%d",&m1);
        scanf("%d%d",&x,&y);
        for(int i=0;i<m1-1;i++){
            int z,w;
            scanf("%d%d",&z,&w);
            if(x==z){
                line[i].len=abs(y-w);
                line[i].dir=(y<w?2:0);
            }
            else{
                line[i].len=abs(x-z);
                line[i].dir=(x<z?1:3);
            }
            x=z,y=w;
        }
        //rep(i,m-1) printf("len:%d dir:%d\n",line[i].len,line[i].dir); puts("");
        //printf("-------------------\n");
        int flag=1;
        for(int i=0;i<n;i++){
            int x,y,m2; Line tmp[10];
            scanf("%d",&m2);
            scanf("%d%d",&x,&y);
            for(int j=0;j<m2-1;j++){
                int z,w;
                scanf("%d%d",&z,&w);
                if(x==z){
                    tmp[j].len=abs(y-w);
                    tmp[j].dir=(y<w?2:0);
                }
                else{
                    tmp[j].len=abs(x-z);
                    tmp[j].dir=(x<z?1:3);
                }
                x=z,y=w;
            }
            if(m1!=m2) continue;
            //rep(k,m-1) printf("len:%d dir:%d\n",tmp[k].len,tmp[k].dir); puts("");
            for(int d=0;d<4;d++){
                if(cal(d,m2,tmp)){
                    printf("%d\n",i+1);
                    break;}
            }
        }
        if(flag) printf("+++++\n");
    }
}

