← Home
#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();
}