E. Покраска ребер
ограничение по времени на тест
6 секунд
ограничение по памяти на тест
600 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Обратите внимание на нестандартное ограничение по памяти в этой задаче.

Дан неориентированный граф из n вершин и m ребер. Вершины пронумерованы целыми числами от 1 до n, рёбра нумеруются целыми числами от 1 до m. Каждое ребро может быть покрашено в один из k цветов, которые нумеруются целыми числами от 1 до k. Изначально ни одно ребро не покрашено ни в один из цветов.

Вам приходят запросы вида «Перекрасьте ребро номер ei в цвет ci». В любой момент времени граф, образованный ребрами одного цвета, должен быть двудольным. Если после перекраски это условие нарушится, то запрос считается некорректным и ребро ei сохраняет свой цвет. Иначе ребро ei перекрашивается в цвет ci, а запрос считается корректным.

Напомним, что граф называется двудольным, если множество его вершин можно разбить на две части так, чтобы ни одно ребро не соединяло вершины из одной и той же части.

Например, пусть дан граф-треугольник, то есть граф с тремя вершинами и ребрами (1, 2), (2, 3) и (3, 1). Пусть первые два ребра покрашены в цвет 1, а третье — в цвет 2. Тогда запрос «перекрасить третье ребро в цвет 1» будет некорректным, потому что после его исполнения граф, образованный ребрами цвета 1, не будет являться двудольным. С другой стороны, возможно перекрасить второе ребро в цвет 2.

Вам поступает q запросов. Для каждого запроса вы должны либо применить его, и сообщить, что запрос корректен, либо сообщить, что запрос некорректен.

Входные данные

В первой строке даны числа n, m, k, q (2 ≤ n ≤ 5·105, 1 ≤ m, q ≤ 5·105, 1 ≤ k ≤ 50) — число вершин, число ребер, количество цветов и количество запросов.

Далее даны m ребер графа в формате ai, bi (1 ≤ ai, bi ≤ n).

Далее даны q запросов в формате ei, ci (1 ≤ ei ≤ m, 1 ≤ ci ≤ k).

Гарантируется, что в графе нет кратных ребер и петель.

Выходные данные

Для каждого запроса выведите «YES» (без кавычек), если он корректен, либо «NO» (без кавычек), если этот запрос нарушит двудольность графа, образованного ребрами какого-либо цвета.

Примеры
Входные данные
3 3 2 5
1 2
2 3
1 3
1 1
2 1
3 2
3 1
2 2
Выходные данные
YES
YES
YES
NO
YES