You are given set of n points in 5-dimensional space. The points are labeled from 1 to n. No two points coincide.
We will call point a bad if there are different points b and c, not equal to a, from the given set such that angle between vectors $\vec{ab}$ and $\vec{ac}$ is acute (i.e. strictly less than $90^{\circ}$). Otherwise, the point is called good.
The angle between vectors $\vec{x}$ and $\vec{y}$ in 5-dimensional space is defined as $\operatorname{arccos}(\frac{\vec{x} \cdot \vec{y}}{|\vec{x}||\vec{y}|})$, where $\vec{x} \cdot \vec{y} = x_{1} y_{1} + x_{2} y_{2} + x_{3} y_{3} + x_{4} y_{4} + x_{5} y_{5}$ is the scalar product and $|\vec{x}|= \sqrt{\vec{x} \cdot \vec{x}}$ is length of $\vec{x}$.
Given the list of points, print the indices of the good points in ascending order.
-----Input-----
The first line of input contains a single integer n (1 ≤ n ≤ 10^3) — the number of points.
The next n lines of input contain five integers a_{i}, b_{i}, c_{i}, d_{i}, e_{i} (|a_{i}|, |b_{i}|, |c_{i}|, |d_{i}|, |e_{i}| ≤ 10^3)  — the coordinates of the i-th point. All points are distinct.
-----Output-----
First, print a single integer k — the number of good points.
Then, print k integers, each on their own line — the indices of the good points in ascending order.
-----Examples-----
Input
6
0 0 0 0 0
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
Output
1
1
Input
3
0 0 1 2 0
0 0 9 2 0
0 0 5 9 0
Output
0
-----Note-----
In the first sample, the first point forms exactly a $90^{\circ}$ angle with all other pairs of points, so it is good.
In the second sample, along the cd plane, we can see the points look as follows:
[Image]
We can see that all angles here are acute, so no points are good.
from math import acos,sqrt,pi

def norm(x):
    if x==0:
        return 0
    else:
        return sqrt(scalar(x,x))

def scalar(x,y):
    return sum([x[i]*y[i] for i in range(5)])
def vector(p,q):
    return ([ (q[i]-p[i]) for i in range(5) ])

number=0
good_points=[]

n=int(input())
liste=[]
for _ in range(n):
    x=list(map(int,input().split(" ")))
    liste.append(x)

if n>11:
    print(0)
else:
    for i in range(n):
        bool=True
        for j in range(n):
            if j!=i:
                for k in range(n):
                    if k!=j and k!=i:
                        x=vector(liste[i],liste[j])
                        y=vector(liste[i],liste[k])
                        angle=acos(scalar(x,y)/norm(x)/norm(y))
                        if angle<pi/2:
                            bool=False
        if bool:
            good_points.append(i+1)
            number+=1
    if number>0:
        answer=str(number)+' '
        good_points.sort()
        for element in good_points:
            answer+='\n'+str(element)
        print(answer)
    else:
        print(0)
from math import acos,sqrt,pi

def norm(x):
    if x==0:
        return 0
    else:
        return sqrt(scalar(x,x))

def scalar(x,y):
    return sum([x[i]*y[i] for i in range(5)])
def vector(p,q):
    return ([ (q[i]-p[i]) for i in range(5) ])

number=0
good_points=[]

n=int(input())
liste=[]
for _ in range(n):
    x=list(map(int,input().split(" ")))
    liste.append(x)

if n>11:
    print(0)
else:
    for i in range(n):
        bool=True
        for j in range(n):
            if j!=i:
                for k in range(n):
                    if k!=j and k!=i:
                        x=vector(liste[i],liste[j])
                        y=vector(liste[i],liste[k])
                        angle=acos(scalar(x,y)/norm(x)/norm(y))
                        if angle<pi/2:
                            bool=False
        if bool:
            good_points.append(i+1)
            number+=1
    if number>0:
        answer=str(number)+' '
        good_points.sort()
        for element in good_points:
            answer+='\n'+str(element)
        print(answer)
    else:
        print(0)