#include<stdio.h>
struct xy {
int x, y;
bool operator <(const xy p) { return x < p.x; }
}a[121212],temp[121212];
int bw[121212],b[121212];
int tree[1212121], tn;
int n, k;
void insert_g(int w, int g) {
for (int i = w + tn - 1; i > 0; i /= 2)tree[i] += g;
}
int search_g(int ss, int ee) {
int s = ss + tn - 1;
int e = ee + tn - 1;
int res = 0;
while (s <= e) {
if (s % 2 == 1)res += tree[s++];
if (e % 2 == 0)res += tree[e--];
s /= 2, e /= 2;
}
return res;
}
long long f(int s, int e) {
if (s == e)return 0;
int m = (s + e) / 2, i;
long long res = f(s, m) + f(m + 1, e);
int p1 = s, p2 = m + 1;
for (i = s; i <= e; i++) {
if (p2 == e + 1 || (p1 != m + 1 && a[p1] < a[p2])) {
res += search_g(1, a[p1].y - k - 1) + search_g(a[p1].y+k+1,n);
temp[i] = a[p1++];
}
else {
insert_g(a[p2].y, 1);
temp[i] = a[p2++];
}
}
for (i = m + 1; i <= e; i++)insert_g(a[i].y, -1);
for (i = s; i <= e; i++)a[i] = temp[i];
return res;
}
int main() {
int i, j;
scanf("%d%d", &n, &k);
for (tn = 1; tn < n; tn *= 2);
for (i = 0; i < n; i++)scanf("%d", &a[i].y);
for (i = 0; i < n; i++)scanf("%d", &b[i]), bw[b[i]] = i;
for (i = 0; i < n; i++)a[i].x = bw[a[i].y];
printf("%lld", f(0, n - 1));
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4Kc3RydWN0IHh5IHsKCWludCB4LCB5OwoJYm9vbCBvcGVyYXRvciA8KGNvbnN0IHh5IHApIHsgcmV0dXJuIHggPCBwLng7IH0KfWFbMTIxMjEyXSx0ZW1wWzEyMTIxMl07CmludCBid1sxMjEyMTJdLGJbMTIxMjEyXTsKaW50IHRyZWVbMTIxMjEyMV0sIHRuOwppbnQgbiwgazsKdm9pZCBpbnNlcnRfZyhpbnQgdywgaW50IGcpIHsKCWZvciAoaW50IGkgPSB3ICsgdG4gLSAxOyBpID4gMDsgaSAvPSAyKXRyZWVbaV0gKz0gZzsKfQppbnQgc2VhcmNoX2coaW50IHNzLCBpbnQgZWUpIHsKCWludCBzID0gc3MgKyB0biAtIDE7CglpbnQgZSA9IGVlICsgdG4gLSAxOwoJaW50IHJlcyA9IDA7Cgl3aGlsZSAocyA8PSBlKSB7CgkJaWYgKHMgJSAyID09IDEpcmVzICs9IHRyZWVbcysrXTsKCQlpZiAoZSAlIDIgPT0gMClyZXMgKz0gdHJlZVtlLS1dOwoJCXMgLz0gMiwgZSAvPSAyOwoJfQoJcmV0dXJuIHJlczsKfQpsb25nIGxvbmcgZihpbnQgcywgaW50IGUpIHsKCWlmIChzID09IGUpcmV0dXJuIDA7CglpbnQgbSA9IChzICsgZSkgLyAyLCBpOwoJbG9uZyBsb25nIHJlcyA9IGYocywgbSkgKyBmKG0gKyAxLCBlKTsKCWludCBwMSA9IHMsIHAyID0gbSArIDE7Cglmb3IgKGkgPSBzOyBpIDw9IGU7IGkrKykgewoJCWlmIChwMiA9PSBlICsgMSB8fCAocDEgIT0gbSArIDEgJiYgYVtwMV0gPCBhW3AyXSkpIHsKCQkJcmVzICs9IHNlYXJjaF9nKDEsIGFbcDFdLnkgLSBrIC0gMSkgKyBzZWFyY2hfZyhhW3AxXS55K2srMSxuKTsKCQkJdGVtcFtpXSA9IGFbcDErK107CgkJfQoJCWVsc2UgewoJCQlpbnNlcnRfZyhhW3AyXS55LCAxKTsKCQkJdGVtcFtpXSA9IGFbcDIrK107CgkJfQoJfQoJZm9yIChpID0gbSArIDE7IGkgPD0gZTsgaSsrKWluc2VydF9nKGFbaV0ueSwgLTEpOwoJZm9yIChpID0gczsgaSA8PSBlOyBpKyspYVtpXSA9IHRlbXBbaV07CglyZXR1cm4gcmVzOwp9CmludCBtYWluKCkgewoJaW50IGksIGo7CglzY2FuZigiJWQlZCIsICZuLCAmayk7Cglmb3IgKHRuID0gMTsgdG4gPCBuOyB0biAqPSAyKTsKCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspc2NhbmYoIiVkIiwgJmFbaV0ueSk7Cglmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKXNjYW5mKCIlZCIsICZiW2ldKSwgYndbYltpXV0gPSBpOwoJZm9yIChpID0gMDsgaSA8IG47IGkrKylhW2ldLnggPSBid1thW2ldLnldOwoJcHJpbnRmKCIlbGxkIiwgZigwLCBuIC0gMSkpOwoJcmV0dXJuIDA7Cn0=