//RAM__RAM
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
ll isKthBitSet(ll n,ll k)
{
ll pass;
if (n & (1 << (k - 1)))
{
pass=1;
}
else
{
pass=0;
}
return pass;
}
int main()
{
ll t;
cin>>t;
ll i1=1;
while(t--)
{
ll n;
map<ll,ll> a1;
ll q;
cin>>n>>q;
ll a[n];
ll i=0;
ll m=0;
while(i<n)
{
cin>>a[i];
ll k1=a[i];
ll r=0;
ll k=1;
while(k<=15)
{
ll cm=isKthBitSet(k1,k);
r=r+cm;
k++;
}
if(r%2!=0)
{
a1[i]=1;
}
m=m^a[i];
i++;
}
//map<ll, ll>::iterator itr;
/* for (itr = a1.begin(); itr != a1.end(); ++itr)
{
cout << '\t' << itr->first
<< '\t' << itr->second << '\n';
}
*/
cout<<"Case #"<<i1<<": ";
while(q--)
{
ll pi,vi;
cin>>pi>>vi;
m=m^a[pi]^vi;
a[pi]=vi;
ll r=0;
ll k=1;
while(k<=15)
{
ll cm=isKthBitSet(vi,k);
r=r+cm;
k++;
}
if(r%2==0)
{
a1[pi]=1;
a1.erase(pi);
}
else
{
a1[pi]=1;
}
r=0;//RAM-RAM
k=1;
while(k<=15)
{
ll cm=isKthBitSet(m,k);
r=r+cm;
k++;
}
if(r%2==0)
{
cout<<n<<" ";
}
else
{
map<ll, ll>::iterator itr;
itr = a1.begin();
//cout<<itr->first<<" ";
ll k1=n-itr->first-1;
map<ll, ll>::reverse_iterator it;
it = a1.rbegin();
ll k2= it->first;
cout<<max(k1,k2);
cout<<" ";
}
//cout<<"\n";
}
i1++;
cout<<"\n";
}
return 0;
}
Ly9SQU1fX1JBTQojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIGludCBsbDsKCmxsIGlzS3RoQml0U2V0KGxsIG4sbGwgaykgCnsKICAgIGxsIHBhc3M7IAogICAgaWYgKG4gJiAoMSA8PCAoayAtIDEpKSkKICAgIHsKICAgIHBhc3M9MTsKICAgIH0KICAgIGVsc2UKewpwYXNzPTA7IAp9CnJldHVybiBwYXNzOwp9CgppbnQgbWFpbigpCnsKbGwgdDsKY2luPj50OwpsbCBpMT0xOwp3aGlsZSh0LS0pCnsKICAgIApsbCBuOwptYXA8bGwsbGw+IGExOwpsbCBxOwpjaW4+Pm4+PnE7CmxsIGFbbl07CmxsIGk9MDsKbGwgbT0wOwp3aGlsZShpPG4pCnsKY2luPj5hW2ldOwpsbCBrMT1hW2ldOwoKbGwgcj0wOwpsbCBrPTE7CndoaWxlKGs8PTE1KQp7CiBsbCBjbT1pc0t0aEJpdFNldChrMSxrKTsgCiByPXIrY207CmsrKzsKfQppZihyJTIhPTApCnsKICAgIAogICAgICAgYTFbaV09MTsgICAKICAgIAp9CgoKbT1tXmFbaV07CmkrKzsKfQoKIC8vbWFwPGxsLCBsbD46Oml0ZXJhdG9yIGl0cjsgCiAgICAKLyogICAgZm9yIChpdHIgPSBhMS5iZWdpbigpOyBpdHIgIT0gYTEuZW5kKCk7ICsraXRyKQogICAgeyAKICAgICAgICBjb3V0IDw8ICdcdCcgPDwgaXRyLT5maXJzdCAKICAgICAgICAgICAgIDw8ICdcdCcgPDwgaXRyLT5zZWNvbmQgPDwgJ1xuJzsgCiAgICB9CiAqLyAgIAogICAgCgoKY291dDw8IkNhc2UgIyI8PGkxPDwiOiAiOwp3aGlsZShxLS0pCnsKICAgIApsbCBwaSx2aTsKY2luPj5waT4+dmk7CgptPW1eYVtwaV1edmk7CgphW3BpXT12aTsKCmxsIHI9MDsKbGwgaz0xOwp3aGlsZShrPD0xNSkKewogbGwgY209aXNLdGhCaXRTZXQodmksayk7IAogcj1yK2NtOwprKys7Cn0KaWYociUyPT0wKQp7CiAgIGExW3BpXT0xOwogICBhMS5lcmFzZShwaSk7Cn0KZWxzZQp7CiAgICBhMVtwaV09MTsKICAgIAp9CgoKCiByPTA7Ly9SQU0tUkFNCiBrPTE7CndoaWxlKGs8PTE1KQp7CiBsbCBjbT1pc0t0aEJpdFNldChtLGspOyAKIHI9citjbTsKaysrOwp9CmlmKHIlMj09MCkKewogICAgY291dDw8bjw8IiAiOwp9CmVsc2UKewogICAgbWFwPGxsLCBsbD46Oml0ZXJhdG9yIGl0cjsgCiAgIAogICAgIAogICAgaXRyID0gYTEuYmVnaW4oKTsKICAgIAogICAgLy9jb3V0PDxpdHItPmZpcnN0PDwiICI7CiAgICAKICAgIGxsIGsxPW4taXRyLT5maXJzdC0xOwogICAgCiAgICAKICAgIG1hcDxsbCwgbGw+OjpyZXZlcnNlX2l0ZXJhdG9yIGl0OwogICAgaXQgPSBhMS5yYmVnaW4oKTsKICAgIGxsIGsyPSBpdC0+Zmlyc3Q7CiAgICBjb3V0PDxtYXgoazEsazIpOwogICAgCiAgICAKICAgIAogICAgY291dDw8IiAiOwogICAgCiAgICAKICAgIAp9CiAgICAKICAgIAogICAgCiAgIC8vY291dDw8IlxuIjsKfQogIGkxKys7ICAKIGNvdXQ8PCJcbiI7ICAgCn0KICAgIAogICAgCiAgICByZXR1cm4gMDsKfQ==