#include<bits/stdc++.h>
using namespace std;
#define int long long
int T,n,k,x,y,ans=0;
int a[1000001],minn[1000001],maxx[1000001],f[1000001];
inline bool my(int w)
{
return (maxx[f[w]]>0)?false:true;
}
signed main()
{
cin>>T>>n;
for(int i=1;i<=n;i++) cin>>a[i],minn[i]=maxx[n-i+1]=a[i],f[i]=i;
int l1=1,l2=1;
while(maxx[l1]-minn[l2]>minn[l2+1]||((n+2==l2+l1)||(n+1==l2+l1)||(n==l2+l1)))
{
maxx[l1]-=minn[l2];
minn[n-l1+1]=maxx[l1];
minn[l2]=0;
maxx[n-l2+1]=0;
l2++;
int j=l1;
while(maxx[j+1]>maxx[j])
{
swap(maxx[j],maxx[j+1]);
swap(minn[n-j+1],minn[n-j+2]);
swap(f[j],f[j+1]);
j++;
}
}
cout<<n-l2+1<<endl;
while(--T)
{
cin>>k;
while(k--)
{
int x,y;
cin>>x>>y;
if(my(x))
{
l1--;
maxx[l1]=y;
l2--;
minn[l2]=y;
int ii=l1;
while(maxx[ii]<=maxx[ii+1])
swap(maxx[ii],maxx[ii+1]),ii++;
ii=l2;
while(minn[ii]>=minn[ii+1])
swap(minn[ii],minn[ii+1]),ii++;
}
else
{
maxx[f[x]]=0,minn[f[n-x+1]]=0;
for(int i=n;i>=l1+1;i--) maxx[i]=maxx[i-1];
for(int i=n;i>=l2+1;i--) minn[i]=minn[i-1];
maxx[l1]=y;
minn[l2]=y;
int ii=l1;
while(maxx[ii]<=maxx[ii+1])
swap(maxx[ii],maxx[ii+1]),ii++;
ii=l2;
while(minn[ii]>=minn[ii+1])
swap(minn[ii],minn[ii+1]),ii++;
}
}
while(maxx[l1]-minn[l2]>minn[l2+1]||((n+2==l2+l1)||(n+1==l2+l1)||(n==l2+l1)))
{
maxx[l1]-=minn[l2];
minn[n-l1+1]=maxx[l1];
minn[l2]=0;
maxx[n-l2+1]=0;
l2++;
int j=l1;
while(maxx[j+1]>maxx[j])
{
swap(maxx[j],maxx[j+1]);
swap(minn[n-j+1],minn[n-j+2]);
j++;
}
}
cout<<n-l2+1<<endl;
}
return 0;
}