//* Problem  : G: Swamp Things
//* Contest  : ECNA-2006
//* Type     : Solution
//* Date     : 2008.08.04
//* Author   : alt
//* Language : C++
//* Compiler : Microsoft Visual C++ 6.0

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <vector>
#include <queue>
#include <string>
#include <stack>
#include <set>
#include <map>
#include <algorithm>

using namespace std;

typedef pair <int,int> PIII;
typedef vector <int> VI;
typedef vector <vector<int> > VVI;
typedef vector <pair<int,int> > VPII;
typedef vector <vector<pair<int,int> > > VVPII;

#define int64 long long
#define PI (2.0 * acos(0.0))
#define MP make_pair
#define PB push_back
#define SZ(a) (int)a.size()
#define FOR(i, n) for (int i = 0; i < (int)n; i++)
#define FORSZ(i, a) FOR(i, SZ(a))
#define FORE(i, a, b) for (int i = (int)(a); i <= (int)(b); i++)
#define FORR(i, a, b) for (int i = (int)(a); i >= int(b); i--)
#define INF 1000000000
#define INFL 1000000000000000000LL
#define ALL(a) a.begin(), a.end()
#define RALL(a) a.rbegin(), a.rend()

inline int si(){int tt; scanf("%d", &tt); return tt;}

struct point{
	int x, y;
}a[1024], b[1024];

int n, res, k;

int gcd(int a, int b)
{
	a = abs(a);
	b = abs(b);
	while (a && b)
		if (a > b)
			a %= b;
		else b %= a;
	return a + b;
}

int cmp_f(const void *aaa, const void *baa)
{
	point *aa = (point*)aaa;
	point *bb = (point*)baa;
	if (aa->x != bb->x) return aa->x - bb->x;
	return aa->y - bb->y;
}

void solve()
{
	res = 0;
	for (k = 0; k < n; k++)
	{
		FOR(i, n)
		{
			int dx = a[i].x - a[k].x;
			int dy = a[i].y - a[k].y;
			int g = gcd(dx, dy);
			if (!g) g = 1;
			dx /= g;
			dy /= g;
			if (dx < 0){dx = -dx; dy = -dy;}
			else if (!dx && dy < 0) {dy = -dy;}
			b[i].x = dx; b[i].y = dy;
		}
		qsort(b, n, sizeof(b[1]), cmp_f);
		int i = 0;
		while (i < n)
		{
			int j = i, t = 0;
			while (i < n &&  b[i].x == b[j].x && b[i].y == b[j].y)
			{
				t++;
				i++;
			}
			res = max(res, t + 1);
		}
	}
}

void result()
{
	
}

int main()
{
#ifdef _DEBUG
	freopen("1064", "r", stdin);
//	freopen("1064w", "w", stdout);
#endif
	int it = 0;
	while (scanf("%d", &n) && n)
	{
		FOR(i,n)
		{
			scanf("%d%d", &a[i].x, &a[i].y); b[i] = a[i];
		}
		solve();
		if (res < 4) res = 0;
		printf("Photo %d: %d points eliminated\n", ++it, res);
	}
	return 0;
}

