#include<bits/stdc++.h>
using namespace std;
int n,m,c[5200010],ans;
vector<int>e[5200010];
multiset<int>q;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>c[i];
for(int i=1,s,t;i<=m;i++){
cin>>s>>t;
e[s].emplace_back(t);
}
for(int i=1;i<=n;i++){
while(q.size()>c[i])q.erase(--q.end());
while(q.size()&&(*q.begin())==i)q.erase(q.begin()),ans++;
for(auto j : e[i]){
if(q.size()<c[i])q.insert(j);
else if((*--q.end())>j)q.erase(--q.end()),q.insert(j);
}
}
cout<<ans;
}