#include <iostream>
#include <vector>
#include <map>
#include <unordered_map>
#include <set>
#include <algorithm>
#include <cmath>
#include <fstream>
#include <ctime>
#include <stdio.h> /* printf */
#include <stdlib.h>
#include <queue>
#ifdef SHOW_DEBUG
#define dbg(a, ...) printf("DEBUG: " a "\n", ##__VA_ARGS__)
#else
#define dbg(...) ((void*)(0))
#endif
using namespace std;
typedef long long ll;
template<typename A, typename B>
using hmap = unordered_map<A, B>;
typedef tuple<int, int> ii;
typedef tuple<ll, ll> lii;
#define PI 3.14159265358979323846
#define inf 0x3f3f3f3f
#define infl 0x3f3f3f3f3f3f3f3fL
void step(vector<vector<ll>>& edges, set<ll> nodes, vector<vector<ll>>& dist, ll running_dist){
set<ll> new_nodes;
ll new_dist = running_dist + 1;
for (ll node : nodes){
for (ll j = 0; j < edges[node].size(); j++){
ll p = (new_dist) % 2;
ll neighbor = edges[node][j];
if (dist[neighbor][p] == -1 || new_dist < dist[neighbor][p] ){
dist[neighbor][p] = new_dist;
new_nodes.insert(neighbor);
}
}
}
if (!new_nodes.empty()){
step(edges, new_nodes, dist, running_dist + 1);
}
}
void bfs(vector<vector<ll>>& edges, ll start, vector<vector<ll>>& dist){
set<ll> nodes;
nodes.insert(start);
step(edges, nodes, dist, 0);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll tt;
cin >> tt;
for (ll t = 0; t < tt; t++){
ll n, m, l;
cin >> n >> m >> l;
vector<ll> A(l);
for (ll i = 0; i < l; i++){
cin >> A[i];
}
vector<vector<ll>> edges(n);
for (ll i = 0; i < m; i++){
ll u, v;
cin >> u >> v;
u--;
v--;
edges[u].push_back(v);
edges[v].push_back(u);
}
for (ll i = 0; i < n; i++){
sort(edges[i].begin(), edges[i].end());
}
vector<vector<ll>> dist(n, vector<ll>(2, -1));
dist[0][0] = 0;
dist[0][1] = -1;
bfs(edges, 0, dist);
sort(A.begin(), A.end());
ll min_odd = -1;
for (ll i = 0; i < A.size(); i++){
if (A[i] % 2 == 1){
min_odd = A[i];
break;
}
}
ll sum = 0;
for (ll i = 0; i < A.size(); i++){
sum += A[i];
}
ll even_sum = -1;
ll odd_sum = -1;
if (sum % 2 == 0){
even_sum = sum;
if (min_odd != -1){
odd_sum = sum - min_odd;
}
} else {
odd_sum = sum;
if (min_odd != -1){
even_sum = sum - min_odd;
}
}
vector<ll> ans(n);
for (ll i = 0; i < ans.size(); i++){
if ((dist[i][0] > -1 && dist[i][0] <= even_sum) || (dist[i][1] > -1 && dist[i][1] <= odd_sum)){
ans[i] = 1;
}
}
for (ll i = 0; i < ans.size(); i++){
cout << ans[i];
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPGN0aW1lPgojaW5jbHVkZSA8c3RkaW8uaD4gICAgICAvKiBwcmludGYgKi8KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8cXVldWU+CgojaWZkZWYgU0hPV19ERUJVRwojZGVmaW5lIGRiZyhhLCAuLi4pIHByaW50ZigiREVCVUc6ICIgYSAiXG4iLCAjI19fVkFfQVJHU19fKQojZWxzZQojZGVmaW5lIGRiZyguLi4pICgodm9pZCopKDApKQojZW5kaWYKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0ZW1wbGF0ZTx0eXBlbmFtZSBBLCB0eXBlbmFtZSBCPgp1c2luZyBobWFwID0gdW5vcmRlcmVkX21hcDxBLCBCPjsKdHlwZWRlZiB0dXBsZTxpbnQsIGludD4gaWk7CnR5cGVkZWYgdHVwbGU8bGwsIGxsPiBsaWk7CiNkZWZpbmUgUEkgMy4xNDE1OTI2NTM1ODk3OTMyMzg0NgojZGVmaW5lIGluZiAweDNmM2YzZjNmCiNkZWZpbmUgaW5mbCAweDNmM2YzZjNmM2YzZjNmM2ZMCgp2b2lkIHN0ZXAodmVjdG9yPHZlY3RvcjxsbD4+JiBlZGdlcywgc2V0PGxsPiBub2RlcywgdmVjdG9yPHZlY3RvcjxsbD4+JiBkaXN0LCBsbCBydW5uaW5nX2Rpc3QpewogICAgc2V0PGxsPiBuZXdfbm9kZXM7CiAgICBsbCBuZXdfZGlzdCA9IHJ1bm5pbmdfZGlzdCArIDE7CiAgICBmb3IgKGxsIG5vZGUgOiBub2Rlcyl7CiAgICAgICAgZm9yIChsbCBqID0gMDsgaiA8IGVkZ2VzW25vZGVdLnNpemUoKTsgaisrKXsKICAgICAgICAgICAgbGwgcCA9IChuZXdfZGlzdCkgJSAyOwogICAgICAgICAgICBsbCBuZWlnaGJvciA9IGVkZ2VzW25vZGVdW2pdOwogICAgICAgICAgICBpZiAoZGlzdFtuZWlnaGJvcl1bcF0gPT0gLTEgfHwgbmV3X2Rpc3QgPCBkaXN0W25laWdoYm9yXVtwXSApewogICAgICAgICAgICAgICAgZGlzdFtuZWlnaGJvcl1bcF0gPSBuZXdfZGlzdDsKICAgICAgICAgICAgICAgIG5ld19ub2Rlcy5pbnNlcnQobmVpZ2hib3IpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYgKCFuZXdfbm9kZXMuZW1wdHkoKSl7CiAgICAgICAgc3RlcChlZGdlcywgbmV3X25vZGVzLCBkaXN0LCBydW5uaW5nX2Rpc3QgKyAxKTsKICAgIH0KfQoKdm9pZCBiZnModmVjdG9yPHZlY3RvcjxsbD4+JiBlZGdlcywgbGwgc3RhcnQsIHZlY3Rvcjx2ZWN0b3I8bGw+PiYgZGlzdCl7CiAgICBzZXQ8bGw+IG5vZGVzOwogICAgbm9kZXMuaW5zZXJ0KHN0YXJ0KTsKICAgIHN0ZXAoZWRnZXMsIG5vZGVzLCBkaXN0LCAwKTsKfQoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKICAgIGxsIHR0OwogICAgY2luID4+IHR0OwogICAgZm9yIChsbCB0ID0gMDsgdCA8IHR0OyB0KyspewogICAgICAgIGxsIG4sIG0sIGw7CiAgICAgICAgY2luID4+IG4gPj4gbSA+PiBsOwogICAgICAgIHZlY3RvcjxsbD4gQShsKTsKICAgICAgICBmb3IgKGxsIGkgPSAwOyBpIDwgbDsgaSsrKXsKICAgICAgICAgICAgY2luID4+IEFbaV07CiAgICAgICAgfQogICAgICAgIHZlY3Rvcjx2ZWN0b3I8bGw+PiBlZGdlcyhuKTsKICAgICAgICBmb3IgKGxsIGkgPSAwOyBpIDwgbTsgaSsrKXsKICAgICAgICAgICAgbGwgdSwgdjsKICAgICAgICAgICAgY2luID4+IHUgPj4gdjsKICAgICAgICAgICAgdS0tOwogICAgICAgICAgICB2LS07CiAgICAgICAgICAgIGVkZ2VzW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICAgICAgZWRnZXNbdl0ucHVzaF9iYWNrKHUpOwogICAgICAgIH0KICAgICAgICBmb3IgKGxsIGkgPSAwOyBpIDwgbjsgaSsrKXsKICAgICAgICAgICAgc29ydChlZGdlc1tpXS5iZWdpbigpLCBlZGdlc1tpXS5lbmQoKSk7CiAgICAgICAgfQoKICAgICAgICB2ZWN0b3I8dmVjdG9yPGxsPj4gZGlzdChuLCB2ZWN0b3I8bGw+KDIsIC0xKSk7CiAgICAgICAgZGlzdFswXVswXSA9IDA7CiAgICAgICAgZGlzdFswXVsxXSA9IC0xOwogICAgICAgIGJmcyhlZGdlcywgMCwgZGlzdCk7CgogICAgICAgIHNvcnQoQS5iZWdpbigpLCBBLmVuZCgpKTsKICAgICAgICBsbCBtaW5fb2RkID0gLTE7CiAgICAgICAgZm9yIChsbCBpID0gMDsgaSA8IEEuc2l6ZSgpOyBpKyspewogICAgICAgICAgICBpZiAoQVtpXSAlIDIgPT0gMSl7CiAgICAgICAgICAgICAgICBtaW5fb2RkID0gQVtpXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGxsIHN1bSA9IDA7CiAgICAgICAgZm9yIChsbCBpID0gMDsgaSA8IEEuc2l6ZSgpOyBpKyspewogICAgICAgICAgICBzdW0gKz0gQVtpXTsKICAgICAgICB9CiAgICAgICAgbGwgZXZlbl9zdW0gPSAtMTsKICAgICAgICBsbCBvZGRfc3VtID0gLTE7CiAgICAgICAgaWYgKHN1bSAlIDIgPT0gMCl7CiAgICAgICAgICAgIGV2ZW5fc3VtID0gc3VtOwogICAgICAgICAgICBpZiAobWluX29kZCAhPSAtMSl7CiAgICAgICAgICAgICAgICBvZGRfc3VtID0gc3VtIC0gbWluX29kZDsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG9kZF9zdW0gPSBzdW07CiAgICAgICAgICAgIGlmIChtaW5fb2RkICE9IC0xKXsKICAgICAgICAgICAgICAgIGV2ZW5fc3VtID0gc3VtIC0gbWluX29kZDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdmVjdG9yPGxsPiBhbnMobik7CiAgICAgICAgZm9yIChsbCBpID0gMDsgaSA8IGFucy5zaXplKCk7IGkrKyl7CiAgICAgICAgICAgIGlmICgoZGlzdFtpXVswXSA+IC0xICYmIGRpc3RbaV1bMF0gPD0gZXZlbl9zdW0pIHx8IChkaXN0W2ldWzFdID4gLTEgJiYgZGlzdFtpXVsxXSA8PSBvZGRfc3VtKSl7CiAgICAgICAgICAgICAgICBhbnNbaV0gPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAobGwgaSA9IDA7IGkgPCBhbnMuc2l6ZSgpOyBpKyspewogICAgICAgICAgICBjb3V0IDw8IGFuc1tpXTsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBlbmRsOwoKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==