class segtree: def __init__(self,n): self.size=1 while self.size1: x//=2 self.dat[x]=max(self.dat[2*x],self.dat[2*x+1]) def querry(self,u,v): u+=self.size v+=self.size score=-10**10 while u1: x//=2 self.dat[x]=(self.dat[2*x]+self.dat[2*x+1]) def querry(self,u,v): u+=self.size v+=self.size score=0 while u=0: l=a G[l].append(pos) Zcount.update(pos,1) Z.update(pos,-10**10) for i in range(Q): l,r=map(int,input().split()) l-=1 r-=1 R[l].append((r,i)) result=[0]*Q for l in range(N): for B in R[l]: r,t=B[:] count=Zcount.querry(0,r+1) result[t]=count for pos in G[l]: Zcount.update(pos,-1) for i in range(Q): print(result[i])