@#include <iostream>
#include <algorithm>
using namespace std;
int cb_min(int A[], int n, int x)
{
/// cel mai mic mai mare sau egal x
int stanga = 1, dreapta = n, mijloc, p = 0;
while(stanga <= dreapta)
{
mijloc = (stanga + dreapta) / 2;
int cb_max(int A[], int n, int x)
{
/// pozitia celui mai mare care este <= x
int st=1,dr=n,mij,p=0;
while(st<=dr)
{
mij=(st+dr)/2;
if(A[mij]<=x)
{
p=mij;
st=mij+1;
}
else
dr=mij-1;
}
return p;
}
int main()
{
int n, A200001, t;
cin >> n >> t;
for(int i = 1; i <= n; i++)
cin >> A[i];
sort(A+1, A+1+n);
for(int i = 1; i <= t; i++)
{
int x, y;
cin >> x >> y;
int z = cb_max(A,n,y)-cb_min(A,n,x)+1;
if(z > n) cout << 0 << ‘\n’;
else cout << z << ‘\n’;
}