/*
TASK:green
LANG:C++
*/
// Svilen Marchev

#include <stdio.h>
#include <math.h>

#define INF		(1e16)
#define MAXN	128
#define SQR(a)	((a)*(a))

struct Point {
	double x, y;
};

Point p[MAXN];
double d[MAXN];
double mins, minv;
int mini, n;

double getd(int i, int j)
{
	return sqrt(SQR(p[i].x-p[j].x) + SQR(p[i].y-p[j].y));
}

double calcs()
{
	int i;
	double s = 0.0, dist, per;

	for (i = 1; i < n; i++)
		d[i] = getd(0, i);

	for (i = 2; i < n; i++) {
		dist = getd(i-1, i);
		per = (d[i-1] + d[i] + dist) / 2;
		s += sqrt(per*(per-d[i-1])*(per-d[i])*(per-dist));
	}
	return s;
}

void solve()
{
	int i, cnt = 1;
	double cs;
	minv = mins = (double)INF;

	//freopen("b3.in", "r", stdin);	// TO REMOVE!!

	while (1) {
		scanf("%d", &n);
		if (n == 0) break;
		for (i = 0; i < n; i++)
			scanf("%lf %lf", &p[i].x, &p[i].y);

		cs = calcs();
		//printf("cs = %lf\n", cs);
		if (cs < mins || (cs == mins && n < minv)) {
			mini = cnt;
			mins = cs;
			minv = n;
		}
		cnt++;
	}
}

int main()
{
	solve();
	printf("%d\n", mini);

	return 0;
}