#include main(){ int first[100000],last[100000]; for(int i = 0;i < 100000;i++){ first[i] = i+1; } int N,K,X; int A[100000],B[100000]; scanf("%d%d%d",&N,&K,&X); for(int i = 0;i < K;i++){ if(i+1==X){scanf("%*s%*s");continue;} scanf("%d%d",&A[i],&B[i]); } for(int i = 0;i < N;i++){ scanf("%d",&last[i]); } // using std::swap; for(int i = 0;i < X;i++){ swap(first[A[i]-1],first[B[i]-1]); } for(int i = K-1;i >= X;i--){ std::swap(last[A[i]-1],last[B[i]-1]); } int p[2] = {0,0}; for(int i = 0;i < N;i++){ if(first[i]!=last[i]){ p[p[0]?1:0] = i+1; } } printf("%d %d\n",p[0],p[1]); }