import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class Pin {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int M = scanner.nextInt();
int[] taskTime = new int[N];
int[] data = new int[N];// 入度
for (int i = 0; i < N; i++) {
taskTime[i] = scanner.nextInt();
}
HashMap<Integer, ArrayList<Integer>> hashMap = new HashMap<>();
for (int i = 0; i < M; i++) {
int pre = scanner.nextInt() - 1;
int last = scanner.nextInt() - 1;
data[last]++;
if (hashMap.containsKey(pre)) {
ArrayList<Integer> list = hashMap.get(pre);
list.add(last);
hashMap.put(pre, list);
} else {
ArrayList<Integer> list = new ArrayList<>();
list.add(last);
hashMap.put(pre, list);
}
}
String result = "";
for (int i = 0; i < data.length; i++) {
int min = Integer.MAX_VALUE;
int index = -1;
for (int j = 0; j < data.length; j++) {
if (data[j] == 0 && min > taskTime[j]) {
min = taskTime[j];
index = j;
}
}
ArrayList<Integer> list = hashMap.get(index);
if (list != null) {
for (int j = 0; j < list.size(); j++) {
data[list.get(j)]--;
}
}
result += index + 1 + " ";
data[index] = -1;
}
System.out.println(result.trim());
}
}
/*
* 此题用到了图的拓扑排序来处理
5 6
1 2 1 1 1
1 2
1 3
1 4
2 5
3 5
4 5
输出1 3 4 2 5
*/