#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 3e3 + 5;
int n, m, k;
vector<int> adj[N];
set<tuple<int, int, int>> ban;
bool vis[N][N];
int p[N][N];
int bfs(int prv_s, int s) {
memset(vis, false, sizeof vis);
memset(p, 0, sizeof p);
queue<ii> q;
vis[prv_s][s] = true;
p[prv_s][s] = 0;
q.push({prv_s, s});
while (!q.empty()) {
ii front = q.front(); q.pop();
int prv_u = front.first, u = front.second;
if (u == n) return prv_u;
for (int nxt_u : adj[u]) {
if (ban.count(make_tuple(prv_u, u, nxt_u))) continue;
if (!vis[u][nxt_u]) {
vis[u][nxt_u] = true;
p[u][nxt_u] = prv_u;
q.push({u, nxt_u});
}
}
}
return -1;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m >> k;
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
for (int i = 0; i < k; i++) {
int a, b, c;
cin >> a >> b >> c;
ban.insert(make_tuple(a, b, c));
}
int prv = bfs(0, 1);
int cur = n;
if (prv == -1) {
cout << -1 << '\n';
return 0;
}
vector<int> path;
while (true) {
path.push_back(cur);
if (cur == 1) break;
int new_prv = p[prv][cur];
cur = prv;
prv = new_prv;
}
reverse(path.begin(), path.end());
cout << path.size() - 1 << '\n';
for (int u : path) cout << u << ' ';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKY29uc3QgaW50IE4gPSAzZTMgKyA1OyAKCmludCBuLCBtLCBrOyAgCnZlY3RvcjxpbnQ+IGFkaltOXTsgCnNldDx0dXBsZTxpbnQsIGludCwgaW50Pj4gYmFuOyAgIAoKYm9vbCB2aXNbTl1bTl07IAppbnQgcFtOXVtOXTsgIAoKaW50IGJmcyhpbnQgcHJ2X3MsIGludCBzKSB7CgltZW1zZXQodmlzLCBmYWxzZSwgc2l6ZW9mIHZpcyk7ICAKCW1lbXNldChwLCAwLCBzaXplb2YgcCk7ICAKCglxdWV1ZTxpaT4gcTsgCgl2aXNbcHJ2X3NdW3NdID0gdHJ1ZTsKCXBbcHJ2X3NdW3NdID0gMDsgIAoJcS5wdXNoKHtwcnZfcywgc30pOyAKCgl3aGlsZSAoIXEuZW1wdHkoKSkgewoJCWlpIGZyb250ID0gcS5mcm9udCgpOyBxLnBvcCgpOyAgCgkJaW50IHBydl91ID0gZnJvbnQuZmlyc3QsIHUgPSBmcm9udC5zZWNvbmQ7IAoKCQlpZiAodSA9PSBuKSByZXR1cm4gcHJ2X3U7IAoKCQlmb3IgKGludCBueHRfdSA6IGFkalt1XSkgewoJCQlpZiAoYmFuLmNvdW50KG1ha2VfdHVwbGUocHJ2X3UsIHUsIG54dF91KSkpIGNvbnRpbnVlOyAKCQkJaWYgKCF2aXNbdV1bbnh0X3VdKSB7CgkJCQl2aXNbdV1bbnh0X3VdID0gdHJ1ZTsgIAoJCQkJcFt1XVtueHRfdV0gPSBwcnZfdTsgIAoJCQkJcS5wdXNoKHt1LCBueHRfdX0pOyAKCQkJfQoJCX0KCX0KCglyZXR1cm4gLTE7IAp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgCgljaW4udGllKG51bGxwdHIpOyAJCgljaW4gPj4gbiA+PiBtID4+IGs7IAoKCWZvciAoaW50IGkgPSAwOyBpIDwgbTsgaSsrKSB7CgkJaW50IHUsIHY7IAoJCWNpbiA+PiB1ID4+IHY7IAoJCWFkalt1XS5wdXNoX2JhY2sodik7IAoJCWFkalt2XS5wdXNoX2JhY2sodSk7Cgl9CgoJZm9yIChpbnQgaSA9IDA7IGkgPCBrOyBpKyspIHsKCQlpbnQgYSwgYiwgYzsgCgkJY2luID4+IGEgPj4gYiA+PiBjOyAKCQliYW4uaW5zZXJ0KG1ha2VfdHVwbGUoYSwgYiwgYykpOyAgCgl9CgoJaW50IHBydiA9IGJmcygwLCAxKTsKCWludCBjdXIgPSBuOyAgCgoJaWYgKHBydiA9PSAtMSkgewoJCWNvdXQgPDwgLTEgPDwgJ1xuJzsgCgkJcmV0dXJuIDA7IAoJfQoKCXZlY3RvcjxpbnQ+IHBhdGg7ICAKCXdoaWxlICh0cnVlKSB7CgkJcGF0aC5wdXNoX2JhY2soY3VyKTsgIAoJCWlmIChjdXIgPT0gMSkgYnJlYWs7IAoJCWludCBuZXdfcHJ2ID0gcFtwcnZdW2N1cl07IAoJCWN1ciA9IHBydjsgIAoJCXBydiA9IG5ld19wcnY7IAoJfQoKCXJldmVyc2UocGF0aC5iZWdpbigpLCBwYXRoLmVuZCgpKTsgCgoJY291dCA8PCBwYXRoLnNpemUoKSAtIDEgPDwgJ1xuJzsgCglmb3IgKGludCB1IDogcGF0aCkgY291dCA8PCB1IDw8ICcgJzsgCn0J