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

class PlaneGame { 
public: 

int f(vector<int>& x, vector<int>& y) 
{ 
    int n = x.size(); 
    double pi = 4.0*atan(1.0); 
    vector<int> xx(n), yy(n); 
     
    int b = 0; 
    for (int i = 0; i < n; i++) 
    { 
        double ang; 
        if (x[i] == 0) 
            ang = pi/2.0; 
        else 
            ang = atan(y[i]/x[i]); 
        ang = 2*pi-ang; 
        for (int j = 0; j < n; j++) 
        { 
            xx[j] = x[j]*cos(ang)-y[j]*sin(ang); 
            yy[j] = y[j]*cos(ang)+x[j]*sin(ang); 
        } 
        int t = 0; 
        for (int j = 0; j < n; j++) 
        { 
            if (abs(xx[j]) <= 1.0e-8 || abs(yy[j]) <= 1.0e-8) 
                t++; 
        } 
        b = max(b, t); 
    } 
     
    return b; 
     
} 

int bestShot(vector <int> x, vector <int> y)  
{ 
    int n = x.size(); 
    int m = 0; 
    for (int i = 0; i < n; i++) 
    { 
        vector<int> xx = x, yy = y; 
        for (int j = 0; j < n; j++) 
        { 
            xx[j] -= x[i]; 
            yy[j] -= y[i]; 
        } 
        m = max(m, f(xx, yy)); 
    } 
    return m;         
} 
};

int main()
{
	PlaneGame obj;
	vector<int> x;
	vector<int> y;
	x.push_back(1);x.push_back(1);x.push_back(-1);x.push_back(-1);
	y.push_back(1);y.push_back(-1);y.push_back(-1);y.push_back(1);
	cout << obj.bestShot(x, y) << endl;
	return 0;
}