#include<iostream>
#include<vector>
#include<set>
using namespace std;
typedef pair<int,int> pii;
const int mx = 3e5+5;
int N, M, K;
set<pii> no;
vector<pii> ans;
vector<int> p(mx, -1), vis(mx, 0);
vector<vector<int>> must(mx), g(mx);
vector<bool> vis1(mx, false), vis2(mx, false);
set<int> s1, s2;
bool is_cycle = false;
int find(int x) {
if(p[x] < 0) return x;
return p[x] = find(p[x]);
}
void uni(int a, int b) {
a = find(a);
b = find(b);
p[a] += p[b];
p[b] = a;
return;
}
void dfs1(int now) {
for(int i: must[now]) dfs1(i);
auto it = s1.begin();
vector<int> temp;
while(it!=s1.end()) {
int nxt = (*it);
if(no.find({now, nxt})!=no.end()) {it++; continue;}
temp.push_back(nxt);
it = s1.erase(it);
}
for(int i: temp) dfs1(i);
}
void dfs2(int now) {
for(int i: must[now]) {dfs2(i); ans.push_back({i, now}); g[now].push_back(i);}
auto it = s2.begin();
vector<int> temp;
while(it!=s2.end()) {
int nxt = (*it);
if(no.find({now, nxt})!=no.end()) {it++; continue;}
temp.push_back(nxt);
it = s2.erase(it);
ans.push_back({nxt, now});
g[now].push_back(nxt);
}
for(int i: temp) dfs2(i);
}
void dfs(int now) {
if(is_cycle) return;
vis[now] = 1;
for(int i: g[now]) {
if(vis[i] == 1) {
is_cycle = true;
return;
}
}
vis[now] = 2;
}
int main() {
cin>>N>>M>>K;
bool flag = false;
for(int i=0; i<M; i++) {
int a, b;
cin>>b>>a;
int pa = find(a);
int pb = find(b);
if(pa == pb) {flag = true; continue;}
if(pb!=b) {flag = true; continue;}
uni(pa, pb);
vis1[b] = 1;
vis2[b] = 1;
must[a].push_back(b);
}
for(int i=0; i<K; i++) {
int a, b;
cin>>b>>a;
no.insert({a, b});
}
if(flag) {cout<<"NO"; return 0;}
for(int i=0; i<N; i++) {
if(!vis1[i]) s2.insert(i), s1.insert(i);
}
int start;
for(int i = 0; i < N; i++) {
if(vis1[i]) continue;
start = i;
s1.erase(i);
vis1[i] = 1;
dfs1(i);
}
for(int i=0; i<N; i++) {
if(!vis1[i]) {
cout<<"NO";
return 0;
}
}
vis2[start] = 1;
s2.erase(start);
dfs2(start);
for(int i=0; i<N; i++) {
if(vis[i]==0 && !is_cycle) dfs(i);
}
if(is_cycle) {cout<<"NO"; return 0;}
if(ans.size()!=N-1) {
cout<<"NO";
return 0;
}
for(auto [x, y]:ans) {
cout<<x<<' '<<y<<'\n';
}
}