#include <bits/stdc++.h>   using namespace std;   const double EPS = 1e-3;   const int SZ = 4000050, INF = 0x7FFFFFFF;   const double PI = acos(-1);   struct nd {     double a, b, c, d, e;     nd(double _a = 0, double _b = 0, double _c = 0, double _d = 0, double _e = 0)         : a(_a), b(_b), c(_c), d(_d), e(_e) {}     nd operator-(nd &rbs) {       return nd(a - rbs.a, b - rbs.b, c - rbs.c, d - rbs.d, e - rbs.e);     }   };   double len(nd &x) {     double res = sqrt(x.a * x.a + x.b * x.b + x.c * x.c + x.d * x.d + x.e * x.e);     return res;   }   double Dot(nd &x, nd &y) {     return (x.a * y.a + x.b * y.b + x.c * y.c + x.d * y.d + x.e * y.e) / len(x) /            len(y);   }   bool test(nd &x, nd &y) {     double ang = acos(Dot(x, y));     return ang < (PI / 2) && fabs(ang - (PI / 2)) > EPS;   }   int main() {     int pnum;     cin >> pnum;     vector<nd> vct;     if (pnum > 11) {       cout << 0 << endl;       return 0;     }     for (int i = 0; i < pnum; ++i) {       nd tmp;       cin >> tmp.a >> tmp.b >> tmp.c >> tmp.d >> tmp.e;       vct.push_back(tmp);     }     vector<int> res;     for (int i = 0; i < pnum; ++i) {       bool ok = 1;       for (int j = 0; j < pnum; ++j) {         if (j == i) continue;         for (int k = 0; k < pnum; ++k) {           if (k == j) continue;           nd ac = vct[j] - vct[i];           nd bc = vct[k] - vct[i];           if (test(ac, bc)) ok = 0;         }       }       if (ok) {         res.push_back(i + 1);       }     }     cout << res.size() << endl;     for (int i = 0; i < res.size(); ++i) {       cout << res[i] << endl;     }     return 0;   }   