#include <bits/stdc++.h>
using namespace std;
int n, m, A = 0;
pair<int, int> a[200100], p[200100];
bool find(const pair<int, int> B) {
  int l = 1, r = n, mid;
  while (l + 1 < r) {
    mid = (l + r) >> 1;
    if (a[mid] == B) return 1;
    if (a[mid] < B)
      l = mid;
    else
      r = mid;
  }
  return a[l] == B || a[r] == B;
}
int main() {
  scanf("%d%d", &n, &m);
  if (m >= n) {
    puts("-1");
    return 0;
  }
  for (int i = 1, x, y; i <= n; ++i)
    scanf("%d%d", &x, &y), a[i] = make_pair(x, y);
  sort(a + 1, a + 1 + n);
  for (int i = 1; i <= m + 1; ++i)
    for (int j = n; i + n <= m + j + 1; --j) {
      int ok = (i - 1) + (n - j), X = a[i].first + a[j].first,
          Y = a[i].second + a[j].second;
      for (int k = i + 1; k < j && ok <= m; ++k)
        if (!find(make_pair(X - a[k].first, Y - a[k].second))) ++ok;
      if (ok <= m) p[++A] = make_pair(X, Y);
    }
  sort(p + 1, p + 1 + A);
  if (A > 0) {
    m = 1;
    for (int i = 2; i <= A; ++i)
      if (p[i] != p[m]) p[++m] = p[i];
  } else
    m = 0;
  printf("%d\n", m);
  for (int i = 1; i <= m; ++i)
    printf("%.1lf %.1lf\n", p[i].first * 0.5, p[i].second * 0.5);
  return 0;
}
