using System; using System.Collections.Generic; using System.Collections; using System.Collections.Specialized; using System.Linq; using System.Text; using System.IO; using System.Reflection; using static System.Math; using System.Numerics; static class Program{ const int mod=(int)1e9+7; static void Main(){ Sc sc=new Sc(); var s=sc.Ia; var a=sc.Ia3(0); St st=new St(a); StringBuilder sb=new StringBuilder(); for(int i = 0;i=m;i--){dat[i]=new Dt(true);} for(int i=m-1;i>=0;i--){dat[i]=(i<<1)+1=m;i--){dat[i]=new Dt(1,a[i-m],a[i-m]);} for(int i=m-1;i>=0;i--){ if((i<<1)+2>1; while(q>=0){ Dt o=Dt.Cm(dat[(q<<1)+1],dat[(q<<1)+2]); if(dat[q]==o){break;} dat[q]=o; q=(q-1)>>1; } } private Dt Fdg(int a,int b,int k,int l,int r){ if(dat[k].c1!=0){Fde(k,Dt.e);} if(r>1); Dt q=Fdg(a,b,k*2+2,(l+r+1)>>1,r); return Dt.Cm(p,q); } public Dt Get(int a,int b){return a>b?du:Fdg(a,b,0,0,m);} public void Ud2(int a,int b,long d){Hn(a,b,0,0,m,d);} private void Hn(int a,int b,int k,int l,int r,long d){ if(a<=l&&r<=b){Fde(k,d);return;} else if(dat[k].c1!=0){Fde(k,Dt.e);} if(r>=a&&b>=l){ Hn(a,b,k*2+1,l,(l+r)>>1,d); Hn(a,b,k*2+2,(l+r+1)>>1,r,d); dat[k]=Dt.Cm(dat[(k<<1)+1],dat[(k<<1)+2]); } } private void Fde(int k,long d){ dat[k]=Dt.Dm(dat[k],d); dat[k]=Dt.Um(dat[k],dat[k].c1); if((k<<1)+2<=cnt){dat[(k<<1)+1]=Dt.Dm(dat[(k<<1)+1],dat[k].c1);} if((k<<1)+2(int n,Func f){var a=new T[n];for(int i=0;i(int n,Func f){var a=new T[n];for(int i=0;i(int n,Func f){var a=new T[n];for(int i=0;i(int n,Func f){var a=new T[n];for(int i=0;i