#include <bits/stdc++.h>
using namespace std;
const int N = 200050;
pair<int, int> P[N], res[N];
int n, k, cres;
bool operator<(pair<int, int> a, pair<int, int> b) {
  return a.first == b.first ? a.second < b.second : a.first < b.first;
}
pair<int, int> operator+(pair<int, int> a, pair<int, int> b) {
  return pair<int, int>(a.first + b.first, a.second + b.second);
}
bool solve(int l, int r, int lim) {
  pair<int, int> cr = P[l] + P[r];
  for (++l, --r; l <= r;)
    if (P[l] + P[r] == cr)
      ++l, --r;
    else {
      if (P[l] + P[r] < cr)
        ++l;
      else
        --r;
      if (--lim < 0) return false;
    }
  res[++cres] = cr;
  return true;
}
int main() {
  scanf("%d%d", &n, &k);
  if (k >= n) {
    printf("-1\n");
    return 0;
  }
  for (int i = 1; i <= n; ++i) scanf("%d%d", &P[i].first, &P[i].second);
  sort(P + 1, P + n + 1);
  for (int i = 0; i <= k; ++i)
    for (int j = n; j >= i && n - j + i <= k; --j)
      solve(i + 1, j, k - (n - j + i));
  sort(res + 1, res + 1 + cres);
  cres = unique(res + 1, res + 1 + cres) - (res + 1);
  printf("%d\n", cres);
  for (int i = 1; i <= cres; ++i)
    printf("%.9lf %.9lf\n", res[i].first / 2.0, res[i].second / 2.0);
  return 0;
}
