#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
struct P {
  int x, y;
  P() {}
  P(int _x, int _y) { x = _x, y = _y; }
  bool operator<(const P &p) const {
    return make_pair(x, y) < make_pair(p.x, p.y);
  }
  bool operator==(const P &p) const { return x == p.x && y == p.y; };
  P operator+(P p) { return {x + p.x, y + p.y}; }
} a[N];
int n, k;
set<P> ans;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0), cout.tie(0);
  cin >> n >> k;
  int x, y;
  for (int i = 1; i <= n; ++i) {
    cin >> x >> y;
    a[i] = P(x, y);
  }
  sort(a + 1, a + 1 + n);
  if (k >= n) {
    cout << -1 << endl;
    return 0;
  }
  for (int i = 1; i <= min(n, k + 1); ++i) {
    for (int j = n; j >= max(n - k, i); --j) {
      int cnt = i - 1 + n - j;
      if (cnt > k) continue;
      P s = a[i] + a[j];
      int r = j;
      for (int l = i; l <= r; ++l) {
        while (l < r && s < a[l] + a[r]) {
          cnt++;
          r--;
        }
        if (a[l] + a[r] == s)
          r--;
        else
          cnt++;
      }
      if (cnt <= k) ans.insert(s);
    }
  }
  cout << ans.size() << endl;
  for (auto p : ans) {
    printf("%.7f %.7f\n", p.x / 2.0, p.y / 2.0);
  }
  return 0;
}
