import sys
input=sys.stdin.readline
#점 개수 n, 선분 개수 m
n,m=map(int, input().split())
lst=list(map(int,input().split()))
mid=0
s,e=0,0
result=[]
lst.sort()
def binary(start, end, key):
global mid
mid=(start+end)//2
if start>end:
return mid
if lst[mid]<=key:
return binary(mid+1, end,key)
else:
return binary(start,mid-1, key)
for _ in range(m):
start, end= map(int,input().split())
s=binary(0,n-1,start)
e=binary(0,n-1,end)
#s,e는 자기보다 작거나 같은값의 인덱스가 나옴
#시작점이 작으면 미포함하기 때문에 하나더 빼야함
#끝점은 작거나 같으면 무조건 포함
if lst[s]<start:
s+=1
result.append(e-s+1)
for r in result:
print(r)
https://hyunee-egeojeogeo.tistory.com/87