#include<bits/stdc++.h>
using namespace std;
using ll = long long;
void solve(){
ll N,M,L;
cin>>N>>M>>L;
vector<ll> A(L);
ll S=0;
ll odm=1e18;
for(int i=0;i<L;i++){
cin>>A[i];
S+=A[i];
if(A[i]%2==1)odm=min(odm,A[i]);
}
vector<vector<int>> G(N);
for(int i=0;i<M;i++){
int u,v;
cin>>u>>v;
u--;v--;
G[u].push_back(v);
G[v].push_back(u);
}
vector<vector<ll>> dist(N,vector<ll>(2,1e18));
dist[0][0]=0;
queue<array<ll,2>> Q;
Q.push({0,0});
while(!Q.empty()){
auto [n,d]=Q.front();
Q.pop();
ll c=dist[n][d];
for(auto v:G[n]){
if(dist[v][1-d]<=c+1)continue;
dist[v][1-d]=c+1;
Q.push({v,1-d});
}
}
for(int i=0;i<N;i++){
bool OK=0;
if(dist[i][S%2]<=S)OK=1;
if(odm<1e5&&dist[i][1-(S%2)]<=S-odm)OK=1;
cout<<OK;
}
cout<<"\n";
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
ll T;
cin>>T;
while(T--)solve();
}