#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 3;
int n;
pair<int, int> p[N];
void rotate_points(){
for(int i = 0; i < n; ++i)
p[i] = {p[i].first - p[i].second, p[i].first + p[i].second};
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cin >> n;
for(int i = 0; i < n; ++i)
cin >> p[i].second >> p[i].first;
rotate_points();
sort(p, p + n, [&](auto l, auto r){
if(l.first != r.first)
return l.first < r.first;
return l.second > r.second;
});
multiset<int> ms;
for(int i = 0; i < n; ++i){
auto it = ms.lower_bound(p[i].second);
if(it != ms.end()) ms.erase(it);
ms.insert(p[i].second);
}
cout << ms.size() << "\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE4gPSAxZTYgKyAzOwoKaW50IG47CnBhaXI8aW50LCBpbnQ+IHBbTl07Cgp2b2lkIHJvdGF0ZV9wb2ludHMoKXsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyArK2kpCiAgICAgICAgcFtpXSA9IHtwW2ldLmZpcnN0IC0gcFtpXS5zZWNvbmQsIHBbaV0uZmlyc3QgKyBwW2ldLnNlY29uZH07Cn0KCmludCBtYWluKCl7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwoKICAgIGNpbiA+PiBuOwogICAgZm9yKGludCBpID0gMDsgaSA8IG47ICsraSkKICAgICAgICBjaW4gPj4gcFtpXS5zZWNvbmQgPj4gcFtpXS5maXJzdDsKCiAgICByb3RhdGVfcG9pbnRzKCk7CiAgICBzb3J0KHAsIHAgKyBuLCBbJl0oYXV0byBsLCBhdXRvIHIpewogICAgICAgIGlmKGwuZmlyc3QgIT0gci5maXJzdCkKICAgICAgICAgICAgcmV0dXJuIGwuZmlyc3QgPCByLmZpcnN0OwogICAgICAgIHJldHVybiBsLnNlY29uZCA+IHIuc2Vjb25kOwogICAgfSk7CgogICAgbXVsdGlzZXQ8aW50PiBtczsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyArK2kpewogICAgICAgIGF1dG8gaXQgPSBtcy5sb3dlcl9ib3VuZChwW2ldLnNlY29uZCk7CiAgICAgICAgaWYoaXQgIT0gbXMuZW5kKCkpIG1zLmVyYXNlKGl0KTsKICAgICAgICBtcy5pbnNlcnQocFtpXS5zZWNvbmQpOwogICAgfQogICAgY291dCA8PCBtcy5zaXplKCkgPDwgIlxuIjsKfQo=