Trở về tuổi thơ

View as PDF

Time limit: 1.0s , Memory limit: 256M , Points: 100 (partial)

Fabian trở về tuổi thơ với trò chơi ghép hình, mỗi mảnh có ghi một giá trị và thuộc một trong 8 loại sau:

Ảnh minh họa

Bộ ghép hình gồm tổng cộng n mảnh, trong đó có đúng một mảnh loại 5 hoặc 6 và có đúng một mảnh loại 7 hoặc 8. Fabian muốn ghép toàn bộ các mảnh ghép với nhau thành một hàng ngang, bắt đầu từ mảnh 5 hoặc 6 và kết thúc bằng mảnh 7 hoặc 8.

Bạn hãy giúp Fabian xác định cách ghép các mảnh sao cho giá trị của chúng khi đọc từ trái sang phải có thứ tự từ điển nhỏ nhất.

Input

  • Dòng đầu tiên chứa số nguyên n (2 \le n \le 10^5).
  • n dòng tiếp theo, dòng thứ i chứa hai số nguyên x_ia_i (1 \le x_i \le 8; \; 1 \le a_i \le 10^9; \; a_i \neq a_j \; \forall \; i \neq j) lần lượt là loại mảnh và giá trị ghi trên mảnh.

Output

  • Nếu không tồn tại cách ghép, in ra -1. Ngược lại, in ra dãy giá trị mảnh ghép từ trái sang phải có thứ tự từ điển nhỏ nhất.

Samples

Sample Input 1
5
1 5
2 7
2 3
8 4
6 1
Sample Output 1
1 3 7 5 4
Sample Input 2
3
5 1
7 2
4 3
Sample Output 2
1 3 2
Sample Input 3
5
2 5
2 7
2 3
8 4
6 1
Sample Output 3
-1

Scoring

  • Subtask 1 với 25\% số điểm: n \le 4
  • Subtask 2 với 25\% số điểm: n \le 10
  • Subtask 3 với 25\% số điểm: Không có mảnh loại 23
  • Subtask 4 với 25\% số điểm: Không còn ràng buộc gì thêm

Clarification

Trong ví dụ đầu tiên, chỉ có hai cách ghép mảnh hợp lệ như sau:

Ảnh minh họa

Cách ghép thứ hai có thứ tự từ điển nhỏ hơn cách ghép đầu tiên.


Comments