#include <iostream>
#include <cmath>
#include <queue>

using namespace std ;

//ifstream cin ("input") ;
//ofstream cout ("output") ;

int x_boss, y_boss ;

class cmp {
	public :
	bool operator () (const pair <int, int> &A, const pair <int, int> &B) {
		if (dist (make_pair(x_boss, y_boss), A) != dist (make_pair(x_boss, y_boss), B)) {
			return dist (make_pair(x_boss, y_boss), A) > dist (make_pair(x_boss, y_boss), B) ;
		}
		return A > B ;
	}
	private :
	int sq (int A) {
		return A * A ;
	}
	int dist (const pair<int, int> &A, const pair <int, int> &B) {
		return sq (A.first - B.first) + sq (A.second - B.second) ; 
	}
};

priority_queue <pair<int, int>, vector<pair<int, int>>, cmp> H ;

int main(int argc, char const *argv[])
{
	int n, k; 
	cin >> n >> k ;
	cin >> x_boss >> y_boss ; 
	for (int i = 1 ; i <= n ; ++ i) { 
		int x, y ; 
		cin >> x >> y ; 
		H.push ({x, y}) ;
	}
	while (k --) {
		cout << H.top().first << ' ' << H.top().second << '\n' ; 
		H.pop() ; 
	}
	return 0;
}