#include <bits/stdc++.h>
using namespace std;
int64_t power(int64_t a, int64_t b) {
  int64_t ans = 1;
  while (b) {
    if (b & 1) {
      ans = (ans * a) % (int64_t)(1e9 + 7);
    }
    a = (a * a) % (int64_t)(1e9 + 7);
    b >>= 1;
  }
  return ans;
}
int64_t mmi(int64_t n) { return power(n, (int64_t)(1e9 + 7) - 2); }
int64_t two(int64_t n) { return (1LL << n); }
void onbit(int64_t &n, int64_t x) { n |= two(x); }
void offbit(int64_t &n, int64_t x) { n &= ~two(x); }
int64_t cntbit(int64_t n) {
  int64_t res = 0;
  while (n and ++res) n -= n & -n;
  return res;
}
int64_t dx[] = {-1, 0, 1, 0}, dy[] = {0, -1, 0, 1};
int64_t k, n, a[2005];
set<int64_t> st, b;
set<int64_t>::iterator it;
void solve() {
  int64_t i, j;
  cin >> k >> n;
  for (i = 1; i < k + 1; i++) cin >> a[i], a[i] += a[i - 1];
  for (i = 1; i < n + 1; i++) {
    int64_t x;
    cin >> x;
    b.insert(x);
  }
  for (i = 1; i < k + 1; i++) {
    st.insert(*b.rbegin() - a[i]);
  }
  int64_t ans = 0;
  for (it = st.begin(); it != st.end(); it++) {
    int64_t x = *it;
    set<int64_t> p = b;
    for (i = 1; i < k + 1; i++) p.erase(x + a[i]);
    if (p.empty()) ans++;
  }
  cout << ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int64_t t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
