#include <bits/stdc++.h>
using namespace std;

map < long long , int > cnt;

class PlaneGame
{
	public:	int bestShot(vector <int> x, vector <int> y)
	{
		int n = x.size();
		int ans = min(n, 1);
		for(int i = 0; i < n; i++)
			for(int j = i+1; j < n; j++)
			{
				long long dx = x[i] - x[j];
				long long dy = y[i] - y[j];
				long long dx2 = dy;
				long long dy2 = -dx;
				long long val = x[i] * dx2 + y[i] * dy2;
				int cntOnLine = 0;
				int maxPerpendicular = 0;
				cnt.clear();
				for(int k = 0; k < n; k++)
					if(x[k] * dx2 + y[k] * dy2 == val)
						cntOnLine ++;
					else
					{
						long long v = x[k] * dx + y[k] * dy;
						cnt[v] ++;
						maxPerpendicular = max(maxPerpendicular, cnt[v]);
					}
				ans = max(ans, maxPerpendicular + cntOnLine);
			}
		return ans;
	}
};
