Có hai nhóm, mỗi nhóm gồm người. Ta gọi các thành viên của nhóm thứ nhất là , còn các thành viên của nhóm thứ hai là . Mỗi người xếp hạng toàn bộ thành viên của nhóm còn lại theo thứ tự yêu thích, từ cao xuống thấp. Không có hai người cùng hạng trong một danh sách.
Hãy ghép mỗi người của nhóm với đúng một người của nhóm sao cho phép ghép ổn định.
Một cặp được gọi là cặp gây bất ổn nếu và không đang được ghép với nhau, đồng thời:
- thích hơn người đang ghép với mình;
- thích hơn người đang ghép với mình.
Một phép ghép là ổn định khi không tồn tại cặp gây bất ổn.
Input
- Dòng đầu chứa số bộ test .
- Mỗi bộ test có dạng:
- Dòng đầu chứa số nguyên .
- dòng tiếp theo mô tả thứ tự yêu thích của nhóm . Mỗi dòng bắt đầu bằng chỉ số , sau đó là một hoán vị của , cho biết xếp các thành viên nhóm theo thứ tự từ thích nhất đến ít thích nhất.
-
dòng tiếp theo mô tả thứ tự yêu thích của nhóm theo cách tương tự. Mỗi dòng bắt đầu bằng chỉ số , sau đó là một hoán vị của gồm các chỉ số của nhóm .
-
Các dòng mô tả trong mỗi nhóm không nhất thiết xuất hiện theo thứ tự chỉ số.
Output
-
Với mỗi bộ test, in đúng dòng. Mỗi dòng chứa hai số nguyên , nghĩa là được ghép với .
-
Mỗi chỉ số của hai nhóm phải xuất hiện đúng một lần. Không in dòng trống hoặc ký hiệu phân cách giữa hai bộ test. Nếu có nhiều phép ghép ổn định, bạn có thể in bất kỳ phép ghép nào.
Constraints
- .
- trong mỗi bộ test.
- Mỗi danh sách yêu thích là một hoán vị đầy đủ của .
Scoring
- Subtask ( số điểm): và .
- Subtask ( số điểm): Không có giới hạn bổ sung.
Example
Test 1
Input
1 3 1 2 1 3 2 1 2 3 3 1 2 3 1 1 2 3 2 1 2 3 3 2 3 1
Output
1 2 2 1 3 3
Giải thích: được ghép với với , còn với . Kiểm tra từng cặp chưa ghép cho thấy không có hai người nào cùng muốn bỏ đối tác hiện tại để ghép với nhau, nên phép ghép này ổn định.