#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int cnt;
int post[100010];
int visit[100010];
vector<int> e[100010];
void dfs(int u) {
if(visit[u]) return;
visit[u] = 1;
for(auto &v : e[u]) dfs(v);
post[u] = ++cnt;
}
int main() {
int n, m1, m2;
scanf("%d %d %d", &n, &m1, &m2);
for(int i = 0; i < m1; i++) {
int x, y;
scanf("%d %d", &x, &y);
e[x].push_back(y);
}
for(int i = 1; i <= n; i++) dfs(i);
for(int i = 0; i < m2; i++) {
int x, y;
scanf("%d %d", &x, &y);
if(post[x] < post[y]) printf("%d %d\n", y, x);
else printf("%d %d\n", x, y);
}
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBjbnQ7CmludCBwb3N0WzEwMDAxMF07CmludCB2aXNpdFsxMDAwMTBdOwoKdmVjdG9yPGludD4gZVsxMDAwMTBdOwoKdm9pZCBkZnMoaW50IHUpIHsKCWlmKHZpc2l0W3VdKSByZXR1cm47Cgl2aXNpdFt1XSA9IDE7Cglmb3IoYXV0byAmdiA6IGVbdV0pIGRmcyh2KTsKCXBvc3RbdV0gPSArK2NudDsKfQoKaW50IG1haW4oKSB7CglpbnQgbiwgbTEsIG0yOwoJc2NhbmYoIiVkICVkICVkIiwgJm4sICZtMSwgJm0yKTsKCWZvcihpbnQgaSA9IDA7IGkgPCBtMTsgaSsrKSB7CgkJaW50IHgsIHk7CgkJc2NhbmYoIiVkICVkIiwgJngsICZ5KTsKCQllW3hdLnB1c2hfYmFjayh5KTsKCX0KCWZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBkZnMoaSk7Cglmb3IoaW50IGkgPSAwOyBpIDwgbTI7IGkrKykgewoJCWludCB4LCB5OwoJCXNjYW5mKCIlZCAlZCIsICZ4LCAmeSk7CgkJaWYocG9zdFt4XSA8IHBvc3RbeV0pIHByaW50ZigiJWQgJWRcbiIsIHksIHgpOwoJCWVsc2UgcHJpbnRmKCIlZCAlZFxuIiwgeCwgeSk7Cgl9CglyZXR1cm4gMDsKfQ==