#include <iostream>
#include <vector>
#include <map>
using namespace std;
template <typename T>
std::ostream &operator<<(std::ostream &os, const std::vector<T> &vec) {
os << '{';
for(size_t x = 0; x + 1 < vec.size(); x++) {
os << vec.at(x) << ", ";
}
if(vec.size() > 0) os << vec.at(vec.size()-1);
os << '}';
return os;
}
int main() {
int n, m;
// your code goes here
std::map<int, std::vector<int>> arr;
while(cin>>n>>m){
arr[n].push_back(m); //push m onto row n
}
for(auto x : arr) {
cout << x.first << ' ' << x.second << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0ZDo6b3N0cmVhbSAmb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0gJm9zLCBjb25zdCBzdGQ6OnZlY3RvcjxUPiAmdmVjKSB7CiAgICBvcyA8PCAneyc7CiAgICBmb3Ioc2l6ZV90IHggPSAwOyB4ICsgMSA8IHZlYy5zaXplKCk7IHgrKykgewogICAgICAgIG9zIDw8IHZlYy5hdCh4KSA8PCAiLCAiOwogICAgfQogICAgaWYodmVjLnNpemUoKSA+IDApIG9zIDw8IHZlYy5hdCh2ZWMuc2l6ZSgpLTEpOwogICAgb3MgPDwgJ30nOwogICAgcmV0dXJuIG9zOwp9CgoKaW50IG1haW4oKSB7CglpbnQgbiwgbTsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXN0ZDo6bWFwPGludCwgc3RkOjp2ZWN0b3I8aW50Pj4gYXJyOwogICAgd2hpbGUoY2luPj5uPj5tKXsKICAgICAgICBhcnJbbl0ucHVzaF9iYWNrKG0pOyAvL3B1c2ggbSBvbnRvIHJvdyBuCiAgICB9CiAgICAKICAgIGZvcihhdXRvIHggOiBhcnIpIHsKICAgIAljb3V0IDw8IHguZmlyc3QgPDwgJyAnIDw8IHguc2Vjb25kIDw8IGVuZGw7CiAgICB9CglyZXR1cm4gMDsKfQ==