#include #include using namespace std; using namespace atcoder; using ll=long long; using mint=modint998244353; const ll mod=998244353; vector A(300000,0); vector Y(300001,0); vector g1(2,1); vector g2(2,1); vector inv(2,1); int N; void dfs(int l,int r){ if(l+1>=r){ return; } int x=(l+r)>>1; dfs(l,x); dfs(x,r); vector a(x-l); vector b(r-x); for(int i=l;i c=convolution(a,b); for(int i=0;i<(int)(c.size());i++){ Y[i]+=c[i]; } return; } int main(){ cin>>N; string S; cin>>S; for(int i=0;i Z(N+1); for(int i=0;i<=N;i++){ Z[N-i]=Y[i]; } vector X=convolution(Z,g2); ll ANS=0; for(int i=0;i<=N;i++){ ANS^=(X[i]*g2[N-i]).val(); } cout<