//-----------------------------defining section------------------------------------------------------------------------------------------------//
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define fl(i,l, h) for(int i = l; i < h; i++)
#define fd(i,h,l) for(int i = h; i >= l; i--)
//-----------------------------functions section------------------------------------------------------------------------------------------------//
struct node {
int data;
struct node* right;
struct node* left;
};
typedef struct node* NODE;
NODE getnode(int x) {
NODE temp = (NODE)malloc(sizeof(struct node));
temp->data = x;
temp->left = NULL;
temp->right = NULL;
return temp;
}
void insert(NODE &root, int x) {
if (root == NULL) {
root = getnode(x);
}
if (x < root->data) {
insert(root->left, x);
}
else if (x > root->data) {
insert(root->right, x);
}
}
void create(NODE &root) {
int x;
while (true) {
cin >> x;
if (x == -999) break;
insert(root, x);
}
}
void InOrder(NODE root, vector<int> &a) {
if (root == NULL) return;
InOrder(root->left, a);
a.push_back(root->data);
InOrder(root->right, a);
}
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
ios_base::sync_with_stdio(false);
cin.tie(NULL);
//-----------------------------input section------------------------------------------------------------------------------------------------//
int k;
cin >> k;
//---------------------------------logic------------------------------------------------------------------------------------------------//
NODE root = NULL;
create(root);
vector<int> a;
InOrder(root, a);
int j = 0, maxLength = -1;
fl(i,1,a.size()) {
if (abs(a[i] - a[i - 1]) == k) {
maxLength = max(maxLength, i - j + 1);
}
else {
j = i;
}
}
//-----------------------------------display section------------------------------------------------------------------------------------------------//
cout << maxLength;
return 0;
}
Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLWRlZmluaW5nIHNlY3Rpb24tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vLwojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CiNkZWZpbmUgZmwoaSxsLCBoKSBmb3IoaW50IGkgPSBsOyBpIDwgaDsgaSsrKQojZGVmaW5lIGZkKGksaCxsKSBmb3IoaW50IGkgPSBoOyBpID49IGw7IGktLSkKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1mdW5jdGlvbnMgc2VjdGlvbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCnN0cnVjdCBub2RlIHsKICAgIGludCBkYXRhOwogICAgc3RydWN0IG5vZGUqIHJpZ2h0OwogICAgc3RydWN0IG5vZGUqIGxlZnQ7Cn07Cgp0eXBlZGVmIHN0cnVjdCBub2RlKiBOT0RFOwpOT0RFIGdldG5vZGUoaW50IHgpIHsKICAgIE5PREUgdGVtcCA9IChOT0RFKW1hbGxvYyhzaXplb2Yoc3RydWN0IG5vZGUpKTsKICAgIHRlbXAtPmRhdGEgPSB4OwogICAgdGVtcC0+bGVmdCA9IE5VTEw7CiAgICB0ZW1wLT5yaWdodCA9IE5VTEw7CiAgICByZXR1cm4gdGVtcDsKfQoKdm9pZCBpbnNlcnQoTk9ERSAmcm9vdCwgaW50IHgpIHsKICAgIGlmIChyb290ID09IE5VTEwpIHsKICAgICAgICByb290ID0gZ2V0bm9kZSh4KTsKICAgIH0KICAgIGlmICh4IDwgcm9vdC0+ZGF0YSkgewogICAgICAgIGluc2VydChyb290LT5sZWZ0LCB4KTsKICAgIH0KICAgIGVsc2UgaWYgKHggPiByb290LT5kYXRhKSB7CiAgICAgICAgaW5zZXJ0KHJvb3QtPnJpZ2h0LCB4KTsKICAgIH0KICAgIAp9CnZvaWQgY3JlYXRlKE5PREUgJnJvb3QpIHsKCiAgICBpbnQgeDsKICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgY2luID4+IHg7CiAgICAgICAgaWYgKHggPT0gLTk5OSkgYnJlYWs7CiAgICAgICAgaW5zZXJ0KHJvb3QsIHgpOwogICAgfQp9CnZvaWQgSW5PcmRlcihOT0RFIHJvb3QsIHZlY3RvcjxpbnQ+ICZhKSB7CgogICAgaWYgKHJvb3QgPT0gTlVMTCkgcmV0dXJuOwogICAgSW5PcmRlcihyb290LT5sZWZ0LCBhKTsKICAgIGEucHVzaF9iYWNrKHJvb3QtPmRhdGEpOwogICAgSW5PcmRlcihyb290LT5yaWdodCwgYSk7Cgp9CmludCBtYWluKCkgewojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKCiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7Ci8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1pbnB1dCBzZWN0aW9uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KCiAgICBpbnQgazsKICAgIGNpbiA+PiBrOwoKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1sb2dpYy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vCgogICAgTk9ERSByb290ID0gTlVMTDsKICAgIGNyZWF0ZShyb290KTsKICAgIHZlY3RvcjxpbnQ+IGE7CiAgICBJbk9yZGVyKHJvb3QsIGEpOwoKCiAgICBpbnQgaiA9IDAsIG1heExlbmd0aCA9IC0xOwogICAgZmwoaSwxLGEuc2l6ZSgpKSB7CiAgICAgICAgaWYgKGFicyhhW2ldIC0gYVtpIC0gMV0pID09IGspIHsKICAgICAgICAgICAgbWF4TGVuZ3RoID0gbWF4KG1heExlbmd0aCwgaSAtIGogKyAxKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGogPSBpOwogICAgICAgIH0KICAgIH0KCgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tZGlzcGxheSBzZWN0aW9uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy8KCgogICAgY291dCA8PCBtYXhMZW5ndGg7CiAgICByZXR1cm4gMDsKfQ==