#include <iostream>
using namespace std;
struct STUDENT_SCORE
{
char name[16];
char id[16];
int eng;
const bool operator<( const STUDENT_SCORE& rhs ) const
{
return eng < rhs.eng;
}
};
#include <vector>
#include <algorithm>
int main()
{
vector< STUDENT_SCORE > scores;
char inputs[ 256 ];
while( cin.getline( inputs, sizeof inputs ) )
{
STUDENT_SCORE score;
sscanf( inputs, "%s%s%u", score.name, score.id, &score.eng );
scores.emplace_back( score );
}
sort( scores.begin(), scores.end() );
int last_score = -1;
int last_order;
for( int i = 0; i < scores.size(); ++i )
{
const auto& score = scores[ i ];
int order = i + 1;
if( last_score != score.eng )
{
last_score = score.eng;
last_order = order;
}
else
{
order = last_order;
}
cout << score.name << " " << score.id << " " << score.eng << " " << order << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFNUVURFTlRfU0NPUkUKewoJY2hhciBuYW1lWzE2XTsKCWNoYXIgaWRbMTZdOwoJaW50ICBlbmc7Cgljb25zdCBib29sIG9wZXJhdG9yPCggY29uc3QgU1RVREVOVF9TQ09SRSYgcmhzICkgY29uc3QKICAgIHsKICAgICAgICByZXR1cm4gIGVuZyA8IHJocy5lbmc7CiAgICB9Cn07CgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKaW50IG1haW4oKQp7Cgl2ZWN0b3I8IFNUVURFTlRfU0NPUkUgPglzY29yZXM7CgljaGFyIGlucHV0c1sgMjU2IF07Cgl3aGlsZSggY2luLmdldGxpbmUoIGlucHV0cywgc2l6ZW9mIGlucHV0cyApICkKCXsKCQlTVFVERU5UX1NDT1JFIHNjb3JlOwoJCXNzY2FuZiggaW5wdXRzLCAiJXMlcyV1Iiwgc2NvcmUubmFtZSwgc2NvcmUuaWQsICZzY29yZS5lbmcgKTsKCQlzY29yZXMuZW1wbGFjZV9iYWNrKCBzY29yZSApOwoJfQoJc29ydCggc2NvcmVzLmJlZ2luKCksIHNjb3Jlcy5lbmQoKSApOwoJaW50IGxhc3Rfc2NvcmUgPSAtMTsKCWludCBsYXN0X29yZGVyOwoJZm9yKCBpbnQgaSA9IDA7IGkgPCBzY29yZXMuc2l6ZSgpOyArK2kgKQoJewoJCWNvbnN0IGF1dG8mIHNjb3JlID0gc2NvcmVzWyBpIF07CiAgICAJaW50IG9yZGVyID0gaSArIDE7CgkJaWYoIGxhc3Rfc2NvcmUgIT0gc2NvcmUuZW5nICkKCQl7CgkJCWxhc3Rfc2NvcmUgPSBzY29yZS5lbmc7CgkJICAgIGxhc3Rfb3JkZXIgPSBvcmRlcjsKCQl9CgkJZWxzZQoJCXsKCQkJb3JkZXIgPSBsYXN0X29yZGVyOwoJCX0KCQljb3V0IDw8IHNjb3JlLm5hbWUgPDwgIiAiIDw8IHNjb3JlLmlkIDw8ICIgIiA8PCBzY29yZS5lbmcgPDwgIiAiIDw8IG9yZGVyIDw8IGVuZGw7Cgl9CgoJcmV0dXJuIDA7Cn0K