#include <bits/stdc++.h>
using namespace std;
#define int long long
#define fi first
#define se second
#define pb push_back
const int N = 1e6+6;
pair <string, int> a[N];
pair <int, int> p[N];
//set<int> s;
int cnt = 1;
map <int, int> mp;
int n, q;
vector <vector <int>> v;

signed main(){
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	cin >> n >> q;
	for(int i = 1; i <= n; i++){
		cin >> a[i].fi >> a[i].se;
		p[i].fi = a[i].se/q;
		//cout << i << ' ' << a[i].se << ' ' << q << ' ' << p[i].fi << '\n';
		p[i].se = i;
	}
	sort(p+1, p+1+n);
	mp[p[1].fi] = 1;
	for(int i = 2; i <= n; i++){
		if(p[i].fi != p[i-1].fi){
			mp[p[i].fi] = ++cnt;
		}else mp[p[i].fi] = cnt;
	}
	//cout << cnt << '\n';
	for(int i = 0; i <= cnt; i++) v.pb({});
	//cout << cnt;
	// for(int i = 1; i <= n; i++) cout << p[i].fi << ' ';
	// cout << '\n';
	// for(int i = 1; i <= cnt; i++){
		// for(auto x: v[i]) cout << x << ' ';
		// cout << '\n';
	// }
	//for(int i = 1; i <= n; i++) cout << mp[p[i].fi] << ' ';
	for(int i = 1; i <= n; i++){
		v[mp[p[i].fi]].pb(p[i].se);
		//cout << i << ' ' << mp[p[i].fi] << ' ' << p[i].se << '\n';
	}
	// for(int i = 1; i <= cnt; i++){
		// for(auto x: v[i]) cout << x << ' ';
		// cout << '\n';
	// }
	int cur = n;
	for(int i = 1;i <= cnt; i++){
		for(int j = 0; j < v[i].size; j++){
			
		}
	}
}