#include <bits/stdc++.h>
#define MP make_pair
typedef long long LL;
using namespace std;
const int SIZE = 1e6+10;
LL rating[SIZE];
bool lose[SIZE];
int main(){
int N,M;
scanf("%d%d",&N,&M);
for(int i=1;i<=N;i++){
int x;
scanf("%d",&x);
rating[i]=x;
}
set<pair<LL,int> >H;
for(int i=1;i<=N;i++){
if(rating[i]>=rating[1])H.insert(MP(rating[i],i));
else lose[i]=1;
}
for(int i=0;i<M;i++){
int k;
scanf("%d",&k);
for(int j=0;j<k;j++){
int p,d;
scanf("%d%d",&p,&d);
if(!lose[p]){
H.erase(H.find(MP(rating[p],p)));
rating[p]+=d;
H.insert(MP(rating[p],p));
}
}
while(H.begin()->second!=1){
lose[H.begin()->second]=1;
H.erase(H.begin());
}
}
printf("%d\\n",(int)H.size()-1);
return 0;
}