#include #include #include #include #include #include #include #include #include #include #include #include #define mod 1000000007; using namespace std; typedef long long ll; typedef pair Pr; int N, K, X; int cap_pos[100001]; int A[100001], B[100001],C[100001]; int main() { cin >> N >> K >> X; for (int i = 1; i <= N; i++) cap_pos[i] = i; for (int i = 0; i < K; i++) { string a, b; cin >> a >> b; if (a != "?"&& b != "?") { A[i] = stoi(a); B[i] = stoi(b); } else A[i] = -1, B[i] = -1; } for (int i = 1; i <= N; i++) cin >> C[i]; int i; for (i = 0; i < K; i++) { if (A[i] != -1 && B[i] != -1) { swap(cap_pos[A[i]],cap_pos[B[i]]); } else break; } for (int j = K-1; j > i; j--) { swap(C[A[j]], C[B[j]]); } int pos[2],j=0; for (int i = 1; i <= N; i++) { if (cap_pos[i] != C[i]) { pos[j++] = i; } } cout << min(pos[0], pos[1]) << " " << max(pos[0], pos[1]) << endl; return 0; }