#include <bits/stdc++.h>
using namespace std;
struct Point {
  int x;
  int y;
} point[500000];
int cmp(const Point &x, const Point &y) {
  return (x.x != y.x) ? (x.x < y.x) : (x.y < y.y);
}
int a[200000][3] = {0};
int check(int num, int x, int y, int a[][3]) {
  int i, flag;
  flag = 1;
  for (i = 1; i <= num; i++)
    if (a[i][1] == x && a[i][2] == y) {
      flag = 0;
      break;
    }
  return flag;
}
int main() {
  int n, k;
  cin >> n;
  cin >> k;
  for (int i = 1; i <= n; i++) {
    cin >> point[i].x;
    cin >> point[i].y;
  }
  sort(point + 1, point + n + 1, cmp);
  if (n <= k)
    cout << "-1" << endl;
  else {
    int i, j, xx = 0, yy = 0, sum = 0, num = 0;
    for (int p = 0; p <= k; p++)
      for (int q = 0; q <= k - p; q++) {
        sum = p + q;
        i = p + 1;
        j = n - q;
        xx = point[i].x + point[j].x;
        yy = point[i].y + point[j].y;
        int ii, jj;
        ii = i + 1;
        jj = j - 1;
        while (ii < jj) {
          while (point[ii].x + point[jj].x == xx &&
                 point[ii].y + point[jj].y == yy && ii < jj) {
            ii++;
            jj--;
          }
          if (ii < jj) {
            while ((xx - point[ii].x) < point[jj].x ||
                   ((xx - point[ii].x) == point[jj].x &&
                    (yy - point[ii].y) < point[jj].y)) {
              jj--;
              sum++;
              if (sum > k) goto biaoji;
              if (ii >= jj) break;
            }
            if (ii >= jj) break;
            while ((xx - point[ii].x) > point[jj].x ||
                   ((xx - point[ii].x) == point[jj].x &&
                    (yy - point[ii].y) > point[jj].y)) {
              ii++;
              sum++;
              if (sum > k) goto biaoji;
              if (ii >= jj) break;
            }
          }
        }
        if (ii == jj) {
          if (point[ii].x * 2 != xx || point[jj].y * 2 != yy) {
            sum++;
            if (sum > k) continue;
          }
        }
        if (ii >= jj && check(num, xx, yy, a)) {
          num++;
          a[num][1] = xx;
          a[num][2] = yy;
        }
      biaoji:;
      }
    cout << num << endl;
    for (i = 1; i <= num; i++)
      printf("%.1f %.1f\n", a[i][1] / 2.0, a[i][2] / 2.0);
  }
  return 0;
}
