#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+7;
int a[maxn];
int degree[maxn];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
memset(degree,0,sizeof(degree));
int n,m;
scanf("%d%d",&n,&m);
for(int i = 1;i<=n;i++)
scanf("%d",&a[i]);
for(int i = 1;i<=m;i++)
{
int u,v;
scanf("%d%d",&u,&v);
degree[u]++;
degree[v]++;
}
int cnt = 0;
for(int i = 1;i<=n;i++)
if(degree[i]&1)
cnt++;
if(cnt!=0 && cnt!=2)
{
printf("Impossible\n");
continue;
}
if(cnt==0)
{
int ans = 0;
for(int i = 1;i<=n;i++)
ans = max(ans,ans^a[i]);
printf("%d\n",ans);
}
else
{
int ans = 0;
for(int i = 1;i<=n;i++)
{
degree[i]=(degree[i]+1)/2;
if(degree[i]&1)
ans^=a[i];
}
printf("%d\n",ans);
}
}
}
tjut 5883
最新推荐文章于 2024-06-04 21:46:32 发布