#include<bits/stdc++.h>
using namespace std;
//#define int long long
#define INF (int)1e9+5
#define ll long long
#define MAX (int)1e9+5
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define pii pair<int,string>
#define endl "\n"
#define all(A) A.begin(),A.end()
struct aux{
int a;
string b;
};
bool cmp(aux c, aux d){
if(c.a > d.a){
return true;
}else if(c.a == d. a){
if(c.b < d.b){
return true;
}else{
return false;
}
}else if(c.a < d.a){
return false;
}
}
int32_t main(){
int n, k, x;
cin >> n >> k;
string s;
map<string,int> msg;
map<string,int>nivel;
for(int i = 0; i<n; i++){
cin >> s >> x;
if(msg.count(s)){
if(abs(x - msg[s]) >= k){
nivel[s]+=25;
msg[s] = x;
}
}else if(!msg.count(s)){
msg.insert(mp(s,x));
nivel.insert(mp(s,25));
}
}
vector<aux>v;
for(auto u : nivel){
aux y;
y.a = u.se;
y.b = u.fi;
v.pb(y);
}
sort(v.begin(),v.end(),cmp);
cout << "--Rank do Nepscord--\n";
if(v.size() == 1){
cout << "#" << 1 << " " << v[0].b << " - Nivel " << ((v[0].a)/100)+1 << endl;
cout << "#2.\n";
cout << "#3.\n";
}
else if(v.size() == 2){
cout << "#" << 1 << " " << v[0].b << " - Nivel " <<((v[0].a)/100)+1 << endl;
cout << "#" << 2 << " " << v[1].b << " - Nivel " << ((v[1].a)/100)+1 << endl;
cout << "#3.\n";
}else if(v.size() >= 3){
cout << "#" << 1 << " " << v[0].b << " - Nivel " << ((v[0].a)/100)+1 << endl;
cout << "#" << 2 << " " << v[1].b << " - Nivel " << ((v[1].a)/100)+1 << endl;
cout << "#" << 3 << " " << v[2].b << " - Nivel " << ((v[2].a)/100)+1 << endl;
}else if(v.size() == 0){
cout << "#1.\n";
cout << "#2.\n";
cout << "#3.\n";
}
/*for(int i = 0; i<3; i++){
//printf("#%d. %s - Nivel %d",i+1,v[i].second,v[i].first);
cout << "#" << i+1 << " " << v[i].second << " - Nivel " << v[i].fi << endl;
}*/
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAvLyNkZWZpbmUgaW50IGxvbmcgbG9uZwogI2RlZmluZSBJTkYgKGludCkxZTkrNQogI2RlZmluZSBsbCBsb25nIGxvbmcKICNkZWZpbmUgTUFYIChpbnQpMWU5KzUKICNkZWZpbmUgcGIgcHVzaF9iYWNrCiAjZGVmaW5lIG1wIG1ha2VfcGFpcgogI2RlZmluZSBmaSBmaXJzdAogI2RlZmluZSBzZSBzZWNvbmQKICNkZWZpbmUgcGlpIHBhaXI8aW50LHN0cmluZz4KICNkZWZpbmUgZW5kbCAiXG4iCiAjZGVmaW5lIGFsbChBKSBBLmJlZ2luKCksQS5lbmQoKQoKc3RydWN0IGF1eHsKCWludCBhOwoJc3RyaW5nIGI7Cn07Cgpib29sIGNtcChhdXggYywgYXV4IGQpewoJaWYoYy5hID4gZC5hKXsKCQlyZXR1cm4gdHJ1ZTsKCX1lbHNlIGlmKGMuYSA9PSBkLiBhKXsKCQlpZihjLmIgPCAgZC5iKXsKCQkJcmV0dXJuIHRydWU7CgkJfWVsc2V7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9ZWxzZSBpZihjLmEgPCBkLmEpewoJCXJldHVybiBmYWxzZTsKCX0KfQoKaW50MzJfdCBtYWluKCl7CglpbnQgbiwgaywgeDsKCWNpbiA+PiBuID4+IGs7CglzdHJpbmcgczsKCW1hcDxzdHJpbmcsaW50PiBtc2c7CgltYXA8c3RyaW5nLGludD5uaXZlbDsKCQoJZm9yKGludCBpID0gMDsgaTxuOyBpKyspewoJCWNpbiA+PiBzID4+IHg7CgkJaWYobXNnLmNvdW50KHMpKXsKCQkJaWYoYWJzKHggLSBtc2dbc10pID49IGspewoJCQkJbml2ZWxbc10rPTI1OwoJCQkJbXNnW3NdID0geDsKCQkJfQoJCX1lbHNlIGlmKCFtc2cuY291bnQocykpewoJCQltc2cuaW5zZXJ0KG1wKHMseCkpOwoJCQluaXZlbC5pbnNlcnQobXAocywyNSkpOwoKCQl9Cgl9Cgl2ZWN0b3I8YXV4PnY7Cglmb3IoYXV0byB1IDogbml2ZWwpewoJCWF1eCB5OwoJCXkuYSA9IHUuc2U7CgkJeS5iID0gdS5maTsKCQl2LnBiKHkpOwoJfQoKCXNvcnQodi5iZWdpbigpLHYuZW5kKCksY21wKTsKCgljb3V0IDw8ICItLVJhbmsgZG8gTmVwc2NvcmQtLVxuIjsKCglpZih2LnNpemUoKSA9PSAxKXsKCQljb3V0IDw8ICIjIiA8PCAxIDw8ICIgIiA8PCB2WzBdLmIgPDwgIiAtIE5pdmVsICIgPDwgKCh2WzBdLmEpLzEwMCkrMSA8PCBlbmRsOwoJCWNvdXQgPDwgIiMyLlxuIjsKCQljb3V0IDw8ICIjMy5cbiI7Cgl9CgllbHNlIGlmKHYuc2l6ZSgpID09IDIpewoJCWNvdXQgPDwgIiMiIDw8IDEgPDwgIiAiIDw8IHZbMF0uYiA8PCAiIC0gTml2ZWwgIiA8PCgodlswXS5hKS8xMDApKzEgIDw8IGVuZGw7CgkJY291dCA8PCAiIyIgPDwgMiA8PCAiICIgPDwgdlsxXS5iIDw8ICIgLSBOaXZlbCAiIDw8ICgodlsxXS5hKS8xMDApKzEgIDw8IGVuZGw7CgkJY291dCA8PCAiIzMuXG4iOwoJfWVsc2UgaWYodi5zaXplKCkgPj0gMyl7CgkJY291dCA8PCAiIyIgPDwgMSA8PCAiICIgPDwgdlswXS5iIDw8ICIgLSBOaXZlbCAiIDw8ICgodlswXS5hKS8xMDApKzEgIDw8IGVuZGw7CgkJY291dCA8PCAiIyIgPDwgMiA8PCAiICIgPDwgdlsxXS5iIDw8ICIgLSBOaXZlbCAiIDw8ICgodlsxXS5hKS8xMDApKzEgPDwgZW5kbDsKCQljb3V0IDw8ICIjIiA8PCAzIDw8ICIgIiA8PCB2WzJdLmIgPDwgIiAtIE5pdmVsICIgPDwgKCh2WzJdLmEpLzEwMCkrMSA8PCBlbmRsOwoJfWVsc2UgaWYodi5zaXplKCkgPT0gMCl7CgkJY291dCA8PCAiIzEuXG4iOwoJCWNvdXQgPDwgIiMyLlxuIjsKCQljb3V0IDw8ICIjMy5cbiI7Cgl9CgoJLypmb3IoaW50IGkgPSAwOyBpPDM7IGkrKyl7CgkJLy9wcmludGYoIiMlZC4gJXMgLSBOaXZlbCAlZCIsaSsxLHZbaV0uc2Vjb25kLHZbaV0uZmlyc3QpOwoJCWNvdXQgPDwgIiMiIDw8IGkrMSA8PCAiICIgPDwgdltpXS5zZWNvbmQgPDwgIiAtIE5pdmVsICIgPDwgdltpXS5maSA8PCBlbmRsOwogCX0qLwoJcmV0dXJuIDA7Cn0KCQ==