n,m=map(int,input().split()) w=[0]+list(map(int,input().split())) for i inrange(2,n+1): w[i]+=w[i-1]
defowo(left,right): global a,b,l,r if left==right: return left mid=(left+right)//2 if (w[mid-1]-w[l-1])*(a+b)>=a*(w[r]-w[l-1]): return owo(left,mid-1) elif (w[mid]-w[l-1])*(a+b)<a*(w[r]-w[l-1]): return owo(mid+1,right) else: return mid
for _ inrange(m): l,r,a,b=map(int,input().split()) print(owo(l,r))
n,m=map(int,input().split()) t=list(map(int,input().split())) p=[list(map(int,input().split())) for _ inrange(m)] total=0 count=0 l=[] for i inrange(m): l.append([p[i][0],0]) l.append([p[i][1],2]) for i inrange(n): l.append([t[i],1]) l.sort() for i inrange(len(l)): if l[i][1]==0: count+=1 elif l[i][1]==2: count-=1 else: total+=count print(total)