Một ngày nọ, một họa sĩ đã vẽ một bức tranh (đồ thị), bây giờ bạn cần tìm chu trình Euler, tức là tìm một vòng trong đồ thị sao cho mỗi cạnh xuất hiện trong vòng đó đúng một lần.
Có hai bài toán con (subtasks):
Đồ thị là vô hướng. ( điểm)
Đồ thị là có hướng. ( điểm)
Dữ liệu:
Dòng đầu tiên chứa một số nguyên , biểu thị mã bài toán con. . Nếu xử lý đồ thị vô hướng, nếu xử lý đồ thị có hướng.
Dòng thứ hai chứa hai số nguyên , biểu thị số đỉnh và số cạnh của đồ thị.
Tiếp theo là dòng, dòng thứ chứa hai số nguyên , biểu thị cạnh thứ (đánh số từ ). Đảm bảo .
Nếu , và có một cạnh vô hướng.
Nếu , có một cạnh có hướng từ đến .
Đồ thị có thể có đa cạnh hoặc khuyên (tự vòng).
Kết quả:
Nếu không thể vẽ được bằng một nét (không có chu trình Euler), in ra một dòng NO.
Ngược lại, in ra một dòng YES, dòng tiếp theo in ra một phương án:
Nếu , in ra số nguyên . Đặt , thì là số hiệu của cạnh thứ đi qua. Nếu dương biểu thị đi từ đến , nếu âm biểu thị đi từ đến .
Nếu , in ra số nguyên . Trong đó là số hiệu của cạnh thứ đi qua.