#include #include using namespace std; using namespace atcoder; #define ll long long #define rep(i,a,b) for(int i=(a);i<(b);i++) #define repl(i,a,b) for(ll i=(a);i<(b);i++) #define all(a) (a).begin(),(a).end() #define rall(a) (a).rbegin(),(a).rend() template bool chmin(T &a,T b){if(a>b){a=b;return true;} return false;} template bool chmax(T &a,T b){if(a> n >> m; vector a(2*n+1),s(m); rep(i,0,2*n+1) cin >> a[i]; rep(i,0,m) cin >> s[i]; vector seen(n+1,false); vector b; queue que; for(auto x:s) b.push_back(x), que.push(x), seen[x]=true; while(!que.empty()){ auto x=que.front(); que.pop(); for(auto y:b){ if(!seen[a[x+y]]){ seen[a[x+y]]=true; que.push(a[x+y]); } } } int ans=0; rep(i,0,2*n+1) if(seen[i]) ans++; cout << ans << "\n"; }