#MN0001. Dòng thời gian hợp lệ (Valid Timeline)

    ID: 40 Loại: Thông thường 1000ms 256MiB Tried: 9 Đã chấp nhận: 2 Độ khó: 1 Đăng bởi: Nhãn>Data StructuresPriority queueSorting and SearchingCustom comparatorsDirected GraphsTopological sorting

Dòng thời gian hợp lệ (Valid Timeline)

Dòng thời gian hợp lệ (Valid Timeline)

Phiên bản: Phước Hưng OJ Extended

Đề bài

Có nn cột mốc được đánh số từ 11 đến nn. Cột mốc thứ ii xảy ra vào năm yiy_i.

Ngoài ra, có mm quan hệ thứ tự. Mỗi quan hệ u→vu \rightarrow v có nghĩa là cột mốc uu bắt buộc phải được trình bày trước cột mốc vv.

Hãy tìm một hoán vị

p1,p2,…,pnp_1,p_2,\ldots,p_n

của các số từ 11 đến nn sao cho đồng thời thỏa mãn:

  • Các cột mốc được trình bày theo thứ tự năm không giảm:
yp1≤yp2≤⋯≤ypn.y_{p_1} \le y_{p_2} \le \cdots \le y_{p_n}.
  • Với mọi quan hệ u→vu \rightarrow v, cột mốc uu xuất hiện trước cột mốc vv trong hoán vị.

Nếu có nhiều thứ tự hợp lệ, hãy chọn hoán vị nhỏ nhất theo thứ tự từ điển của dãy chỉ số.

Hai hoán vị pp và qq được so sánh theo thứ tự từ điển như sau: tại vị trí đầu tiên kk mà pk≠qkp_k \ne q_k, hoán vị pp nhỏ hơn qq nếu pk<qkp_k < q_k.

Nếu không tồn tại thứ tự nào thỏa mãn tất cả các yêu cầu, hãy in ra IMPOSSIBLE.

Input

  • Dòng đầu tiên chứa hai số nguyên nn và mm — số lượng cột mốc và số lượng quan hệ thứ tự.
  • Dòng thứ hai chứa nn số nguyên y1,y2,…,yny_1,y_2,\ldots,y_n, trong đó yiy_i là năm xảy ra của cột mốc thứ ii.
  • mm dòng tiếp theo, mỗi dòng chứa hai số nguyên uu và vv, biểu diễn quan hệ u→vu \rightarrow v: cột mốc uu phải được trình bày trước cột mốc vv.

Output

Nếu tồn tại thứ tự hợp lệ, in ra nn chỉ số

p1,p2,…,pnp_1,p_2,\ldots,p_n

tạo thành hoán vị nhỏ nhất theo thứ tự từ điển trong tất cả các hoán vị thỏa mãn yêu cầu.

Nếu không tồn tại thứ tự hợp lệ, in ra:

IMPOSSIBLE

Subtask

Trong tất cả các Subtask: 1≤n≤2⋅1051 \le n \le 2\cdot10^5; 0≤m≤2⋅1050 \le m \le 2\cdot10^5; 1800≤yi≤30001800 \le y_i \le 3000; 1≤u,v≤n1 \le u,v \le n.

  • Subtask 1 — 30%: 1≤n≤201 \le n \le 20.
  • Subtask 2 — 30%: m=0m=0.
  • Subtask 3 — 40%: 1≤n≤2⋅1051 \le n \le 2\cdot10^5; 0≤m≤2⋅1050 \le m \le 2\cdot10^5; 1800≤yi≤30001800 \le y_i \le 3000; 1≤u,v≤n1 \le u,v \le n.

Ví dụ

Ví dụ 1

Input

5 4
1950 1959 1974 1980 1997
1 2
2 3
2 4
4 5

Output

1 2 3 4 5

Giải thích

Các cột mốc có năm lần lượt là 1950,1959,1974,1980,19971950,1959,1974,1980,1997, nên thứ tự 1 2 3 4 5 có các năm không giảm.

Các quan hệ cũng đều được thỏa mãn: 11 đứng trước 22, 22 đứng trước 33 và 44, còn 44 đứng trước 55.

Sau cột mốc 22, cả cột mốc 33 và 44 đều không vi phạm các quan hệ đã cho. Tuy nhiên, cột mốc 33 xảy ra vào năm 19741974, sớm hơn năm 19801980 của cột mốc 44, nên 33 phải đứng trước 44.

Ví dụ 2

Input

3 0
2000 1990 1990

Output

2 3 1

Giải thích

Không có quan hệ thứ tự nào giữa các cột mốc.

Cột mốc 22 và 33 đều xảy ra vào năm 19901990, còn cột mốc 11 xảy ra vào năm 20002000, vì vậy 22 và 33 phải đứng trước 11.

Giữa hai cột mốc cùng năm 22 và 33, thứ tự 2 3 nhỏ hơn theo thứ tự từ điển. Do đó kết quả là 2 3 1.

Ví dụ 3

Input

3 3
1950 1960 1970
1 2
2 3
3 1

Output

IMPOSSIBLE

Giải thích

Các quan hệ yêu cầu đồng thời:

  • cột mốc 11 đứng trước 22;
  • cột mốc 22 đứng trước 33;
  • cột mốc 33 đứng trước 11.

Ba yêu cầu này tạo thành một vòng phụ thuộc 1→2→3→11 \rightarrow 2 \rightarrow 3 \rightarrow 1, nên không thể sắp xếp ba cột mốc thành một thứ tự thỏa mãn tất cả các quan hệ.

Vì vậy không tồn tại thứ tự hợp lệ.