#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
unordered_map<int, int> suma_Produktow;
vector<int> kolejnosc;
for (int i = 0; i < n; ++i) {
int A, K;
cin >> A >> K;
if (suma_Produktow.find(A) == suma_Produktow.end()) {
kolejnosc.push_back(A);
}
suma_Produktow[A] += K;
}
cout << kolejnosc.size() << "\n";
for (int a : kolejnosc) {
cout << a << " " << suma_Produktow[a] << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIHVub3JkZXJlZF9tYXA8aW50LCBpbnQ+IHN1bWFfUHJvZHVrdG93OwogICAgdmVjdG9yPGludD4ga29sZWpub3NjOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBpbnQgQSwgSzsKICAgICAgICBjaW4gPj4gQSA+PiBLOwogICAgICAgIGlmIChzdW1hX1Byb2R1a3Rvdy5maW5kKEEpID09IHN1bWFfUHJvZHVrdG93LmVuZCgpKSB7CiAgICAgICAgICAgIGtvbGVqbm9zYy5wdXNoX2JhY2soQSk7CiAgICAgICAgfQogICAgICAgIHN1bWFfUHJvZHVrdG93W0FdICs9IEs7CiAgICB9CiAgICBjb3V0IDw8IGtvbGVqbm9zYy5zaXplKCkgPDwgIlxuIjsKICAgIGZvciAoaW50IGEgOiBrb2xlam5vc2MpIHsKICAgICAgICBjb3V0IDw8IGEgPDwgIiAiIDw8IHN1bWFfUHJvZHVrdG93W2FdIDw8ICJcbiI7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==