Điều hướng chính

Nhắn tin NQ Coding

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập lopbthutumonhoc

Thứ tự môn học

Dễ DFS BFS

  • 100p Điểm
  • 1.0s Thời gian
  • 256M Bộ nhớ
  • 0% Tỉ lệ AC
  • 0 Số AC

Trường có \(n\) môn học, đánh số từ \(1\) đến \(n\). Có \(m\) điều kiện tiên quyết, mỗi điều kiện có dạng \(u\ v\): môn \(u\) phải được học trước môn \(v\).

Bạn An muốn học hết \(n\) môn, mỗi lần học một môn, sao cho mọi điều kiện đều được thỏa mãn. Nếu có nhiều thứ tự hợp lệ, An chọn thứ tự nhỏ nhất theo thứ tự từ điển (so sánh môn đầu tiên, bằng nhau thì so môn thứ hai, ...).

Hãy in thứ tự học của An, hoặc in \(-1\) nếu không có thứ tự nào hợp lệ.

Input

  • Dòng đầu chứa hai số nguyên \(n, m\) (\(1 \le n \le 2 \cdot 10^5\), \(0 \le m \le 2 \cdot 10^5\)).
  • \(m\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u, v\) (\(1 \le u, v \le n\), \(u \ne v\)). Một điều kiện có thể xuất hiện nhiều lần.

Output

  • Nếu có thứ tự hợp lệ, in \(n\) số trên một dòng là thứ tự học các môn, cách nhau một dấu cách.
  • Ngược lại in \(-1\).

Scoring

  • Có \(50\%\) số test với \(n, m \le 1000\).

Sample Input 1

5 4
1 3
2 3
3 4
5 4

Sample Output 1

1 2 3 5 4

Sample Input 2

3 3
1 2
2 3
3 1

Sample Output 2

-1

Notes

Ví dụ 1: lúc đầu các môn học được ngay là \(1, 2, 5\); chọn môn nhỏ nhất là \(1\), rồi \(2\). Sau khi học \(1, 2\) thì môn \(3\) học được; trong \(\{3, 5\}\) chọn \(3\). Cuối cùng là \(5\) rồi \(4\).

Ví dụ 2: môn \(1\) cần học trước môn \(2\), môn \(2\) trước môn \(3\), môn \(3\) lại trước môn \(1\) — không thể sắp xếp.

Bình luận

Chưa có bình luận nào.