int@n,@m; unionFind u('m',n,1); pair v[m]; rep(i,m){ int@a--,@b--; v[i]={a,b}; } int@q; int w[q]; char s[m]{}; rep(i,q){ ll@b--; w[i]=b; s[b]=1; } ll z=(ll)n*(ll)(n-1)/2; rep(i,m){ if(!s[i]){ int a=v[i].first; int b=v[i].second; ll s=(ll)u.size(a)*(ll)u.size(b); if(u(a,b)){ z-=s; } } } ll y[q]; rrep(j,q){ y[j]=z; int i=w[j]; int a=v[i].first; int b=v[i].second; ll s=(ll)u.size(a)*(ll)u.size(b); if(u(a,b)){ z-=s; } } wtLn(y(q));