#include using namespace std; typedef long long ll; typedef vector vi; typedef vector vvi; typedef vector vl; const ll p=924844033,r=5,M=1000000; ll Pow(ll n,ll m){ ll res=1; while(m>0){ if(m&1) (res*=n)%=p; (n*=n)%=p; m>>=1; } return res; } ll Inv(ll x){return Pow(x,p-2);} void ntt(vl& a,bool B){ int n=a.size(),h=0; while(1<0){ k=(k-1)/2; date[k]=date[k*2+1]+date[k*2+2]; } } int Query(int a,int b){ return Rec(a,b,0,0,n); } }; vi Sum(vi a,vi b){ int A=a.size(),B=b.size(),N=max(A,B),t=0; vi c(N+1); for(int i=0;i>n; a=vi(n); b=vvi(n); c=vvi(n-1); Segment_Tree st(n); for(int i=0;i>a[i]; for(int i=0;i1){ int N=b.size(),M=(N+1)/2; vvi d(M); for(int i=0;i