#include <bits/stdc++.h>
using namespace std;
const int N = 200005;
int n, k;
pair<int, int> a[N];
vector<pair<int, int> > Center;
bool inf;
bool Check(pair<int, int> center) {
  int cnt = 0, l = 1, r = n;
  pair<int, int> t;
  while (l <= r && cnt <= k) {
    t = make_pair(center.first - a[l].first, center.second - a[l].second);
    if (t == a[r]) {
      l++;
      r--;
    } else {
      cnt++;
      if (t < a[r])
        r--;
      else
        l++;
    }
  }
  return (cnt <= k);
}
void Solve() {
  if (k >= n) {
    inf = true;
    return;
  }
  sort(a + 1, a + n + 1);
  pair<int, int> center;
  int res = 0;
  for (int i = 1; i <= k + 1; i++)
    for (int j = n - k; j <= n; j++)
      if (i <= j) {
        center = make_pair(a[i].first + a[j].first, a[i].second + a[j].second);
        if (Check(center)) Center.push_back(center);
      }
}
int main() {
  cin >> n >> k;
  for (int i = 1; i <= n; i++) scanf("%d %d", &a[i].first, &a[i].second);
  Solve();
  if (inf) {
    cout << -1 << endl;
    return 0;
  }
  int res = 0;
  sort(Center.begin(), Center.end());
  for (int i = 0; i < Center.size(); i++)
    if (i == 0 || Center[i] != Center[i - 1]) res++;
  cout << res << endl;
  int cnt = 0;
  for (int i = 0; i < Center.size(); i++)
    if (i == 0 || Center[i] != Center[i - 1]) {
      printf("%.3lf %.3lf\n", (Center[i].first + 0.0) / 2.0,
             (Center[i].second + 0.0) / 2.0);
    }
  return 0;
}
