/*
TASK: green
LANG: C
*/

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>


int of(int x1,int y1,int x2,int y2,int x3,int y3)
{
	return (x1-x2)*(y2-y3)+(x3-x2)*(y1-y2);
}

/*
int of(int x1,int y1,int x2,int y2,int x3,int y3)
{
	return x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2;
}
*/
typedef struct point
{
	int x,y;
} point;

int main(void)
{
	int i;
 	int x,y,n;
	int face = 0;
 	int min_face = INT_MAX,min_face_i,min_face_n;
	int num = 0;
	point poly[128];

//	freopen("green.in","r",stdin);
//	freopen("green.out","w",stdout);

 	scanf("%d",&n);
 	num++;
	while ( n )
	{
		for ( i = 0 ; i < n ; i++ )
		{
 	 		scanf("%d%d",&x,&y);
 	 		poly[i].x = x;
 	 		poly[i].y = y;
		}
		
		face = 0;
		for ( i = 0 ; i < n ; i++ )
			face += of (0,0,poly[i].x,poly[i].y,poly[(i+1)%n].x,poly[(i+1)%n].y);
		face = abs(face)/2;
		
//		printf("face[%d] = %d\n",num,face);
		if ( (face < min_face) || ( face == min_face && min_face_n > n ) )
		{
			min_face = face;
			min_face_i = num;
			min_face_n = n;
		}
		scanf("%d",&n);
		num++;
 	}
 	
 	printf("%d\n",min_face_i);
 	
 	return 0;
//	system("pause");
}
