#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>

using namespace std;

const int MAXD = 1002;

int d, m, n;
int a, b;

vector <int> v1[MAXD];
vector <int> v2[MAXD];

bool ok[MAXD];
int mem[MAXD];

const int mbuff = ( 1 << 20 );

namespace IO {
  char buffer[mbuff], *p = buffer + mbuff;
  
  inline char read_char() {
    if(p == buffer + mbuff) {
      fread(buffer, 1, mbuff, stdin);
      p = buffer;
    }
    return *p++;
  }
  
  inline int read_int() {
    char c;
    
    while(!isdigit(c = read_char()));
    int ret = (c - '0');
    while(isdigit(c = read_char())) ret = ret * 10 + c - '0';
    
    return ret;
  }
};

int go_back(int x) {
	int p, p1 = -2;

	if (mem[x] != -1) return mem[x];
	if (v2[x].size() == 0) return x;
	
	for(int i = 0; i < v2[x].size(); ++i) {
		p = go_back(v2[x][i]);

		if (p1 == -2) p1 = p;
		if (p != p1) return (mem[x] = -3);	
	}

	return (mem[x] = p1);
}

void solve(int x) {
	int p, p1 = -2;
	bool same = true;
	
	if (ok[x]) return;

	printf("%d ", x + 1);
	ok[x] = true;
	
	for(int i = 0; i < v1[x].size(); ++i)
		if (!ok[v1[x][i]]) solve(v1[x][i]);

	if (v2[x].size() == 1) {
		solve(v2[x][0]);
	} else {
		for(int i = 0; i < v2[x].size() && same; ++i) {
			p = go_back(v2[x][i]);
			
			if (p == -3) same = false;
			if (p1 == -2) p1 = p;
			if (p != p1) same = false;
		}
	}

	if (same && p1 != -2) solve(p1);
}

int main(void) {
	memset(ok, false, sizeof(ok));
	memset(mem, -1, sizeof(mem));

	//scanf("%d %d %d", &d, &m, &n);
	d = IO::read_int();
	m = IO::read_int();
	n = IO::read_int();

	for(int i = 0; i < m; ++i) {
		//scanf("%d %d", &a, &b);
		
        a = IO::read_int();
		b = IO::read_int();
		
        --a; --b;
		v1[a].push_back(b);
		v2[b].push_back(a);
	}

	for(int i = 0; i < n; ++i) {
		//scanf("%d", &a);
		a = IO::read_int();
		--a;

		solve(a);
	}
	
	printf("\n");

	//system("pause");
	return 0;
}
