#include <bits/stdc++.h>
std::unordered_set<long long> se, vis, ans;
std::pair<int, int> arr[200005];
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  if (n <= k) {
    puts("-1");
    return 0;
  }
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &arr[i].first, &arr[i].second);
    se.insert(((long long)((arr[i].first) + 1000000000) * 2500000000 +
               (arr[i].second) + 1000000000));
  }
  std::sort(arr, arr + n);
  for (int i = 0; i <= k; i++) {
    for (int j = n - 1; j >= n - k - 1; j--) {
      int x = arr[i].first + arr[j].first, y = arr[i].second + arr[j].second;
      if (vis.count(
              ((long long)((x) + 1000000000) * 2500000000 + (y) + 1000000000)))
        continue;
      vis.insert(
          ((long long)((x) + 1000000000) * 2500000000 + (y) + 1000000000));
      int cnt = 0;
      for (int t = 0; t < n && cnt <= k; t++)
        cnt += !se.count(
            ((long long)((x - arr[t].first) + 1000000000) * 2500000000 +
             (y - arr[t].second) + 1000000000));
      if (cnt <= k)
        ans.insert(
            ((long long)((x) + 1000000000) * 2500000000 + (y) + 1000000000));
    }
  }
  printf("%d\n", (int)ans.size());
  for (auto p : ans)
    printf("%.1lf %.1lf\n", (double)(p / 2500000000 - 1000000000) / 2,
           (double)(p % 2500000000 - 1000000000) / 2);
  return 0;
}
