#include int a[8003], s[4003]; int v[4003]; int stack[4003], ss; int main() { int n, m; scanf("%d %d", &n, &m); int i, j; for (i = 0; i <= 2 * n; i++) scanf("%d", &a[i]); for (i = 0; i < m; i++) scanf("%d", &s[i]); for (i = 0; i <= n; i++) v[i] = 0; ss = 0; for (i = 0; i < m; i++) { v[s[i]] = 1; stack[ss++] = s[i]; } while (ss > 0) { i = stack[--ss]; for (j = 0; j < m; j++) { if (v[a[i + s[j]]] == 0) { v[a[i + s[j]]]++; stack[ss++] = a[i + s[j]]; } } } int ans = 0; for (i = 0; i <= n; i++) ans += v[i]; printf("%d\n", ans); return 0; }