#include <bits/stdc++.h>
using namespace std;
const int mn=1e6+7;
int c[mn];
pair<int,int> m1,m2,m3;
int main()
{
/*freopen("snakes.in","r",stdin);
freopen("snakes.out","w",stdout);*/
int T;int n;
cin>>T;
for(int t=1;t<=T;++t)
{
set< pair<int,int> > a;
if(t==1)
{
scanf("%d",&n);
for(int i=1;i<=n;++i)
{
scanf("%d",&c[i]);
a.insert(make_pair(c[i],i));
}
}
else
{
int m;
scanf("%d",&m);
for(int i=1;i<=m;++i)
{
int k,x;
scanf("%d%d",&k,&x);
c[k]=x;
}
for(int i=1;i<=n;++i)
a.insert(make_pair(c[i],i));
}
int cnt=a.size();
int ans=cnt;
bool flag=1;
for(int i=1;i<cnt-1;++i)
{
set< pair<int,int> >::iterator mi=a.begin();
set< pair<int,int> >::iterator mi2=mi;
++mi2;
set< pair<int,int> >::iterator mx=a.end();
--mx;
m1=*mi;m2=*mx;
m3=*mi2;
if((m2.first-m1.first<m3.first)||(m2.first-m1.first==m3.first&&m2.second<m3.second))
{
a.erase(mi);a.erase(mx);
a.insert(make_pair(m2.first-m1.first,m2.second));
flag=0;
break;
}
--ans;
a.erase(mi);a.erase(mx);
a.insert(make_pair(m2.first-m1.first,m2.second));
}
if(flag)
{
printf("1
");
continue;
}
cnt=a.size();
int k=0;
for(int i=1;i<cnt-1;++i)
{
set< pair<int,int> >::iterator mi=a.begin();
set< pair<int,int> >::iterator mi2=mi;
++mi2;
set< pair<int,int> >::iterator mx=a.end();
--mx;
m1=*mi;m2=*mx;m3=*mi2;
if((m2.first-m1.first>m3.first)||(m2.first-m1.first==m3.first&&m2.second>m3.second))
break;
a.erase(mi);a.erase(mx);
a.insert(make_pair(m2.first-m1.first,m2.second));
++k;
}
printf("%d
",ans-k%2);
}
return 0;
}