segtree t; ll n,q,a[1d5]; ll b,l,r,x; { rd(n,q,a(n)); t.walloc(n,1); rep(i,n-1)t[i]=(a[i]=a[i+1]-a[i])!=0; t.build(); rep(q){ rd(b,l,r); --l; --r; if(b==1){ rd(x); if(l>0) t.change(l-1,l,(a[l-1]+=x)!=0); t.change(r,r+1,(a[r]-=x)!=0); }else{ wt(1ll+(l==r?0:t.getSum(l,r))); } } }