#include <iostream>
#include <fstream>
#include <vector>
#include <map>
#include <string>
#include <utility>
#include <limits>
#include <cstdlib>
int main(int argc, char * argv[]) {
// if (argc != 2) {
// std::cerr << "Invalid argument(s). Filename expected." << std::endl;
// return EXIT_FAILURE;
// }
// std::ifstream ifs(argv[1]);
// if (!ifs) {
// std::cerr << "Could not open file '" << argv[1] << "' for reading." << std::endl;
// return EXIT_FAILURE;
// }
std::istream & ifs = std::cin;
typedef std::map<std::string, std::vector<int> > map_type;
map_type lifts;
while (ifs) {
int maxFloor;
int maxWeight;
std::string name;
ifs >> maxFloor>> maxWeight >> name;
ifs.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::vector<int> data;
data.reserve(2);
data.push_back(maxFloor);
data.push_back(maxWeight);
lifts.insert(std::make_pair(name, data));
}
for (map_type::const_iterator it = lifts.begin(); it != lifts.end(); ++it) {
std::cout << it->second[0] << '\t' << it->second[1] << '\t' << it->first << std::endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHV0aWxpdHk+CiNpbmNsdWRlIDxsaW1pdHM+CiNpbmNsdWRlIDxjc3RkbGliPgoKCmludCBtYWluKGludCBhcmdjLCBjaGFyICogYXJndltdKSB7CiAgLy8gaWYgKGFyZ2MgIT0gMikgewogIC8vICAgIHN0ZDo6Y2VyciA8PCAiSW52YWxpZCBhcmd1bWVudChzKS4gRmlsZW5hbWUgZXhwZWN0ZWQuIiA8PCBzdGQ6OmVuZGw7CiAgLy8gICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAvLyB9CiAgIAogIC8vIHN0ZDo6aWZzdHJlYW0gaWZzKGFyZ3ZbMV0pOwogIC8vIGlmICghaWZzKSB7CiAgLy8gICAgc3RkOjpjZXJyIDw8ICJDb3VsZCBub3Qgb3BlbiBmaWxlICciIDw8IGFyZ3ZbMV0gPDwgIicgZm9yIHJlYWRpbmcuIiA8PCBzdGQ6OmVuZGw7CiAgLy8gICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAvLyB9CiAgIHN0ZDo6aXN0cmVhbSAmIGlmcyA9IHN0ZDo6Y2luOwoKICAgdHlwZWRlZiBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgc3RkOjp2ZWN0b3I8aW50PiA+CW1hcF90eXBlOwogICBtYXBfdHlwZSBsaWZ0czsKICAgCiAgIHdoaWxlIChpZnMpIHsKICAgICAgaW50IG1heEZsb29yOwogICAgICBpbnQgbWF4V2VpZ2h0OwogICAgICBzdGQ6OnN0cmluZyBuYW1lOwoKICAgICAgaWZzID4+IG1heEZsb29yPj4gbWF4V2VpZ2h0ID4+IG5hbWU7CiAgICAgIGlmcy5pZ25vcmUoc3RkOjpudW1lcmljX2xpbWl0czxzdGQ6OnN0cmVhbXNpemU+OjptYXgoKSwgJ1xuJyk7CiAgICAgIAogICAgICBzdGQ6OnZlY3RvcjxpbnQ+IGRhdGE7CiAgICAgIGRhdGEucmVzZXJ2ZSgyKTsKICAgICAgZGF0YS5wdXNoX2JhY2sobWF4Rmxvb3IpOwogICAgICBkYXRhLnB1c2hfYmFjayhtYXhXZWlnaHQpOwoKICAgICAgbGlmdHMuaW5zZXJ0KHN0ZDo6bWFrZV9wYWlyKG5hbWUsIGRhdGEpKTsKICAgfQoKICAgZm9yIChtYXBfdHlwZTo6Y29uc3RfaXRlcmF0b3IgaXQgPSBsaWZ0cy5iZWdpbigpOyBpdCAhPSBsaWZ0cy5lbmQoKTsgKytpdCkgewogICAgICBzdGQ6OmNvdXQgPDwgaXQtPnNlY29uZFswXSA8PCAnXHQnIDw8IGl0LT5zZWNvbmRbMV0gPDwgJ1x0JyA8PCBpdC0+Zmlyc3QgPDwgc3RkOjplbmRsOwogICB9Cn0=