10
-2 1
2 -2
-1 -2
0 0
2 -1
0 -2
2 2
0 2
-1 -1
1 -2
 40
-8 24
2 -1
1 -18
72 -70
5 -4
-308 436
-19 40
36 -35
-178 265
-1 2
-7 30
-1 0
3 -2
200 -285
17 -16
-35 74
0 -4
-86 106
-1 4
-7 6
0 1
-5 4
-2 3
6 -5
-4 5
181 -262
76 -118
0 0
-7 18
-58 104
-5 6
-6 12
-3 4
1 0
11 -10
-86 130
-3 6
153 -236
-183 270
-33 64
 5
0 -1
0 -2
0 -3
0 -4
0 -5
 10
0 1
-1 -1
1 1
-1 0
1 -1
-2 -1
-2 2
-2 0
0 -2
0 -1
 20
-1 18
-2 5
-5 4
2 -33
9 -18
0 0
11 -22
2 0
-1 2
-4 41
1 6
1 -2
6 -12
0 1
-3 6
3 -6
3 -8
-1 4
2 -5
1 0
 10
2 1
-1 0
-2 -1
-1 1
0 2
2 -2
0 0
-2 -2
0 -2
-2 1
 20
-3 -3
0 4
-3 1
1 1
-1 2
-4 4
3 -1
-3 0
0 2
4 0
2 3
2 4
4 -3
-4 3
-1 1
1 3
-2 4
1 -2
1 -1
3 0
 3
0 0
0 -1
0 1
 10
2 1
-1 1
0 0
-3 1
-2 -3
-1 -2
-1 -1
1 2
3 -2
0 -2
 3
3 3
1 2
1 1
 4
0 0
1 0
2 0
3 0
 9
1 1
1 0
0 1
0 0
-1 0
-1 1
-1 -1
1 -1
0 -1
 7
1 1
-1 -1
1 0
0 1
-1 0
0 -1
0 0

4
 57
 4
 5
 21
 4
 10
 1
 1
 0
 2
 8
 3

class Ponto:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    # def compara(self, p):
    #     return (self.x < p.x) if (self.x != p.x) else (self.y < p.y)

def main():
    pontos = set()
    n = int(raw_input())

    for i in range(n):
        x, y = map(int, raw_input().split())
        pontos.add(Ponto(x, y))

    pontos = list(pontos)

    contador = 0
    for i in xrange(n):
        for j in xrange(i+1, n):
            if (pontos[i].x + pontos[j].x)%2==0 and (pontos[i].y + pontos[j].y)%2==0:
                ponto = Ponto((pontos[i].x + pontos[j].x)/2, (pontos[i].y + pontos[j].y)/2)
                if ponto in pontos:
                    contador += 1

    print contador

if __name__ == '__main__':
    main()

#
# const int MAXN = 3001;
#
# int main()
# {
# 	int n;
# 	cin >> n;
# 	set<point> pts;
#
# 	for (int i = 0; i < n; ++i) {
# 		point p;
# 		cin >> p.x >> p.y;
# 		pts.insert( p);
# 	}
# 	int cnt = 0;
# 	for (set<point>::iterator it1 = pts.begin(); it1 != pts.end(); it1++) {
# 		set<point>::iterator it2 = it1;
# 		for (it2++; it2 != pts.end(); it2++) {
# 			if (((it1->x + it2->x) % 2 == 0) && ((it1->y + it2->y) % 2 == 0)) {
# 				point p;
# 				p.x = (it1->x + it2->x) / 2;
# 				p.y = (it1->y + it2->y) / 2;
# 				if (pts.find( p) != pts.end()) {
# 					cnt++;
# 				}
# 			}
# 		}
# 	}
# 	cout << cnt << endl;
#
# 	return 0;
# }



# import sys
# from pprint import pprint
#
# def main():
#     all_input = iter(sys.stdin.read().strip().replace('\n', ' ').split(' '))
#     n = int(all_input.next())
#
#     mtz = []
#     for i in xrange(8):
#         mtz.append([False]*8)
#
#     pts = []
#     pts_hash = {}
#     for i in xrange(n):
#         x = 4 + int(all_input.next())
#         y = 4 + int(all_input.next())
#         pts.append((x, y))
#         mtz[x][y] = True
#         # try:
#         #     pts_hash[x].append(y)
#         # except KeyError:
#         #     pts_hash[x] = [y]
#
#     # pprint(mtz)
#
#     qt = 0
#     count = set()
#     for i in xrange(n):
#         for j in xrange(i+1, n):
#             deltax = pts[j][0] - pts[i][0]
#             deltay = pts[j][1] - pts[i][1]
#             if mtz[pts[j][0]+deltax][pts[j][1]+deltay]:
#                 qt += 1
#                 print pts[i], pts[j], (pts[j][0]+deltax, pts[j][1]+deltay)
#
#
#
#     #         try:
#     #             if pts[j][1]+deltay in pts_hash[pts[j][0]+deltax]:
#     #                 aux = [pts[i], pts[j], (pts[j][0]+deltax, pts[j][1]+deltay)]
#     #                 aux.sort()
#     #                 count.add(str(aux))
#     #                 # count.add(set([pts[i], pts[j], (pts[j][0]+deltax, pts[j][1]+deltay)]))
#     #                 # print pts[i], pts[j]
#     #                 qt += 1
#     #         except KeyError:
#     #             pass
#     #         # print i, j
#
#     # print pts
#     # print pts_hash
#     # pprint(count)
#     # print len(count)
#     print qt
#
# if __name__ == '__main__':
#     main()