#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
const int MAX_N = 15005;
const int SHIFT = 30001;
PII a[MAX_N];
const int MAX_LEAVES = 2 * SHIFT + 5;
int T[4*MAX_LEAVES], lazy[4*MAX_LEAVES];
void push(int v) {
T[2*v] += lazy[v];
T[2*v+1] += lazy[v];
lazy[2*v+1] += lazy[v];
lazy[2*v+1] += lazy[v];
lazy[v] = 0;
}
void update(int v, int l, int r, int qL, int qR, int val) {
if (l > qR || r < qL) return;
if (qL <= l && r <= qR) {
T[v] += val;
lazy[v] += val;
return;
}
int mid = (l + r) / 2;
push(v);
update(2*v, l, mid, qL, qR, val);
update(2*v+1, mid+1, r, qL, qR, val);
T[v] = max(T[2*v], T[2*v+1]);
}
int query(int v, int l, int r, int qL, int qR) {
if (l > qR || r < qL) return 0;
if (qL <= l && r <= qR) return T[v];
int mid = (l + r) / 2;
push(v);
return max(query(2*v, l, mid, qL, qR), query(2*v+1, mid+1, r, qL, qR));
}
int main() {
int S, W, n;
cin >> S >> W >> n;
for (int i = 0; i < n; i++) {
cin >> a[i].first >> a[i].second;
a[i].second += SHIFT;
}
sort(a, a+n);
int last_removed = 0;
int ans = 0;
for (int i = 0; i < n; i++) {
int bottom = max(1, a[i].second - W);
update(1, 1, 2*SHIFT, bottom, a[i].second, 1);
while (last_removed < n && a[last_removed].first < a[i].first - S) {
int new_bottom = max(1, a[last_removed].second - W);
update(1, 1, 2*SHIFT, new_bottom, a[last_removed].second, -1);
last_removed++;
}
ans = max(ans, query(1, 1, 2*SHIFT, bottom, a[i].second));
}
cout << ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IFBJSTsKCmNvbnN0IGludCBNQVhfTiA9IDE1MDA1Owpjb25zdCBpbnQgU0hJRlQgPSAzMDAwMTsKClBJSSBhW01BWF9OXTsKCmNvbnN0IGludCBNQVhfTEVBVkVTID0gMiAqIFNISUZUICsgNTsKCmludCBUWzQqTUFYX0xFQVZFU10sIGxhenlbNCpNQVhfTEVBVkVTXTsKCnZvaWQgcHVzaChpbnQgdikgewogICAgVFsyKnZdICs9IGxhenlbdl07CiAgICBUWzIqdisxXSArPSBsYXp5W3ZdOwogICAgbGF6eVsyKnYrMV0gKz0gbGF6eVt2XTsKICAgIGxhenlbMip2KzFdICs9IGxhenlbdl07CiAgICBsYXp5W3ZdID0gMDsKfQoKdm9pZCB1cGRhdGUoaW50IHYsIGludCBsLCBpbnQgciwgaW50IHFMLCBpbnQgcVIsIGludCB2YWwpIHsKICAgIGlmIChsID4gcVIgfHwgciA8IHFMKSByZXR1cm47CgogICAgaWYgKHFMIDw9IGwgJiYgciA8PSBxUikgewogICAgICAgIFRbdl0gKz0gdmFsOwogICAgICAgIGxhenlbdl0gKz0gdmFsOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpbnQgbWlkID0gKGwgKyByKSAvIDI7CiAgICBwdXNoKHYpOwogICAgdXBkYXRlKDIqdiwgbCwgbWlkLCBxTCwgcVIsIHZhbCk7CiAgICB1cGRhdGUoMip2KzEsIG1pZCsxLCByLCBxTCwgcVIsIHZhbCk7CgogICAgVFt2XSA9IG1heChUWzIqdl0sIFRbMip2KzFdKTsKfQoKaW50IHF1ZXJ5KGludCB2LCBpbnQgbCwgaW50IHIsIGludCBxTCwgaW50IHFSKSB7CiAgICBpZiAobCA+IHFSIHx8IHIgPCBxTCkgcmV0dXJuIDA7CgogICAgaWYgKHFMIDw9IGwgJiYgciA8PSBxUikgcmV0dXJuIFRbdl07CgogICAgaW50IG1pZCA9IChsICsgcikgLyAyOwogICAgcHVzaCh2KTsKCiAgICByZXR1cm4gbWF4KHF1ZXJ5KDIqdiwgbCwgbWlkLCBxTCwgcVIpLCBxdWVyeSgyKnYrMSwgbWlkKzEsIHIsIHFMLCBxUikpOwp9CgppbnQgbWFpbigpIHsKCiAgICBpbnQgUywgVywgbjsKICAgIGNpbiA+PiBTID4+IFcgPj4gbjsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGNpbiA+PiBhW2ldLmZpcnN0ID4+IGFbaV0uc2Vjb25kOwogICAgICAgIGFbaV0uc2Vjb25kICs9IFNISUZUOwogICAgfQoKICAgIHNvcnQoYSwgYStuKTsKCiAgICBpbnQgbGFzdF9yZW1vdmVkID0gMDsKICAgIGludCBhbnMgPSAwOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgaW50IGJvdHRvbSA9IG1heCgxLCBhW2ldLnNlY29uZCAtIFcpOwogICAgICAgIHVwZGF0ZSgxLCAxLCAyKlNISUZULCBib3R0b20sIGFbaV0uc2Vjb25kLCAxKTsKCiAgICAgICAgd2hpbGUgKGxhc3RfcmVtb3ZlZCA8IG4gJiYgYVtsYXN0X3JlbW92ZWRdLmZpcnN0IDwgYVtpXS5maXJzdCAtIFMpIHsKICAgICAgICAgICAgaW50IG5ld19ib3R0b20gPSBtYXgoMSwgYVtsYXN0X3JlbW92ZWRdLnNlY29uZCAtIFcpOwogICAgICAgICAgICB1cGRhdGUoMSwgMSwgMipTSElGVCwgbmV3X2JvdHRvbSwgYVtsYXN0X3JlbW92ZWRdLnNlY29uZCwgLTEpOwogICAgICAgICAgICBsYXN0X3JlbW92ZWQrKzsKICAgICAgICB9CgogICAgICAgIGFucyA9IG1heChhbnMsIHF1ZXJ5KDEsIDEsIDIqU0hJRlQsIGJvdHRvbSwgYVtpXS5zZWNvbmQpKTsKICAgIH0KCiAgICBjb3V0IDw8IGFuczsKCgogICAgcmV0dXJuIDA7Cn0K