#include<bits/stdc++.h>
using namespace std;
int line1[1000000];
int line2[1000000];
int line[1000000];
int f=0,l=0,b=0,f2=0;
bool cc=1;
void cs(){
l-=f2;
for(int var=0;var<b-f2;var++){
line1[var]=line1[var+f2];
}
for(int var=0;var<f-f2;var++){
line1[var]=line2[f2+var];
}
sort(line1,line1+l+1);
return;
}
void end(){
if(line1[l]-line1[0]>line1[1]||l==1||line1[0]==0){
if(cc){
f++;
}
cout<<b-f<<endl;
}
else{
line1[0]=line1[l]-line1[0];
l--;
cc^=1;
end();
}
return;
}
void eat(){
if((line1[l]-line1[f]>=line1[f+1]||line2[f2]-line1[f]>=line1[f+1]&&f2<f)&&l-f>0){
if(line2[f2]-line1[f]>=line1[l]-line1[f]&&f2<f){
line2[f]=line2[f2]-line1[f];
f2++;
f++;
eat();
}
else{
line2[f]=line1[l]-line1[f];
l--;
f++;
eat();
}
}
else{
cs();
end();
}
return;
}
int main(){
int a,c,d;
scanf("%d%d",&a,&b);
l=b-1;
f=0;
for(int var=0;var<b;var++){
scanf("%d",&line1[var]);
line[var]=line1[var];
}
eat();
for(int ar=1;ar<a;ar++){
cc=1;
l=b-1;
f=0;
f2=0;
scanf("%d",&c);
for(int var=0;var<b;var++){
line1[var]=line[var];
}
for(int var=0;var<b;var++){
line2[var]=0;
}
for(int var=0;var<c;var++){
scanf("%d",&d);
scanf("%d",&line1[d-1]);
line[d-1]=line1[d-1];
}
eat();
}
return 0;
}