#include <bits/stdc++.h>
using namespace std;
const int N = 1e6;
int a[N];
int n, q;
int leftBound(int x);
int rightBound(int x);
int main() {
cin >> n >> q;
for(int i = 0; i < n; ++i){
cin >> a[i];
}
sort(a, a + n);
int l, r;
for(int i = 0; i < q; ++i){
cin >> l >> r;
cout << rightBound(r) - leftBound(l) + 1 << endl;
}
}
int leftBound(int x){ //查找第一个大于等于x的位置
int l = -1, r = n - 1;
while(l + 1 != r){
int mid = l + (r - l) / 2;
if(a[mid] >= x) r = mid;
else l = mid;
}
return r;
}
int rightBound(int x){ //查找最后一个小于等于x的位置
int l = 0, r = n;
while(l + 1 != r){
int mid = l + (r - l) / 2;
if(a[mid] <= x) l = mid;
else r = mid;
}
return l;
}