#include #include using namespace std; struct point { int x, y; }; point v[10005]; int xb, yb; inline int dist (point a) { return (a.x - xb) * (a.x - xb) * (a.y - yb) * (a.y - yb); } bool cmp(point a, point b) { int d1, d2; d1 = dist (a); d2 = dist (b); if (d1 == d2) if (a.x == b.x) return a.y < b.y; else return a.x < b.x; else return d1 < d2; } int main() { int n, k, x, y; scanf("%d %d", &n, &k); scanf("%d %d", &xb, &yb); for (int i = 1; i <= n; ++i) { scanf("%d %d", &x, &y); v[i].x = x; v[i].y = y; } sort (v + 1, v + n + 1, cmp); for (int i = 1; i <= k; ++i) printf("%d %d\n", v[i].x, v[i].y); return 0; }