Có thành viên ở nhóm trái và thành viên ở nhóm phải. Danh sách cặp được cho biết trước; cặp nghĩa là thành viên của nhóm trái có thể làm việc cùng thành viên của nhóm phải.
Hãy chọn nhiều cặp tương thích nhất sao cho không thành viên nào xuất hiện trong hai cặp được chọn. Ngoài số lượng tối đa, bạn phải in ra một cách chọn đạt được số lượng đó.
Input
- Dòng đầu chứa ba số nguyên và .
- Mỗi dòng trong dòng tiếp theo chứa hai số nguyên và , mô tả một cặp tương thích. Thành viên nhóm trái được đánh số từ đến , thành viên nhóm phải được đánh số từ đến .
Output
- Dòng đầu in số nguyên , là số cặp lớn nhất có thể chọn.
-
Trong dòng tiếp theo, mỗi dòng in một cặp được chọn. Các cặp phải có trong danh sách đầu vào; mọi chỉ số ở mỗi phía phải đôi một khác nhau.
-
Nếu có nhiều phương án tối ưu, bạn có thể in bất kỳ phương án nào.
Constraints
- .
- .
- Mỗi cặp đầu vào thỏa .
- Không có cặp nào xuất hiện hai lần trong input.
Scoring
- Subtask ( số điểm): và .
- Subtask ( số điểm): Không có giới hạn bổ sung.
Example
Test 1
Input
4 4 5 1 1 1 2 2 1 3 3 4 3
Output
3 1 2 2 1 3 3
Giải thích: Ba cặp được in không dùng chung thành viên và đều có trong input. Thành viên và ở nhóm trái cùng chỉ có thể dùng thành viên ở nhóm phải, nên không thể chọn đủ bốn cặp.