#include <bits/stdc++.h>
using namespace std;
int n, w;
int a[450000];
int z[450000];
int ans;
void zed(int* a, int n) {
  int l = 0, r = 0;
  for (int i = 1; i < n; ++i) {
    if (i <= r) {
      z[i] = min(z[i - l], r - i + 1);
    }
    while (i + z[i] < n && a[i + z[i]] == a[z[i]]) {
      ++z[i];
    }
    if (i + z[i] - 1 > r) {
      l = i;
      r = i + z[i] - 1;
    }
  }
}
int main() {
  scanf("%d%d", &n, &w);
  for (int i = w; i < n + w; ++i) {
    scanf("%d", a + i);
    if (i > w) {
      a[i - 1] = a[i] - a[i - 1];
    }
  }
  for (int i = 0; i < w; ++i) {
    scanf("%d", a + i);
    if (i > 0) {
      a[i - 1] = a[i] - a[i - 1];
    }
  }
  a[w - 1] = 2147000000;
  zed(a, n + w - 1);
  for (int i = 0; i <= n - w; ++i) {
    if (z[i + w] >= w - 1) {
      ++ans;
    }
  }
  printf("%d\n", ans);
  return 0;
}
