В Древляндии \(n\) городов и \(n-1\) двусторонняя дорога. Каждая дорога соединяет пару различных городов. Из любого города можно проехать в любой другой, двигаясь только по дорогам. Города пронумерованы от \(1\) до \(n\). Да, конечно, вы узнали в этом описании неориентированное дерево.
В каждом городе хранится один флаг, цвет флага в \(i\)-м городе равен \(c_i\). Возможно, что цвета флагов в разных городах совпадают.
Если король едет по маршруту \([u_1, u_2, u_3, \dots, u_k]\), то это значит, что он стартует в городе \(u_1\), затем перемещается в город \(u_2\) (\(u_2\) соединён дорогой с \(u_1\)), затем из \(u_2\) в \(u_3\) (\(u_3\) соединён дорогой с \(u_2\)), и так далее пока не приедет в город \(u_k\). Возможно, что в процессе такого маршрута король посетит один и тот же город более одного раза. Иными словами, маршрут \([u_1, u_2, u_3, \dots, u_k]\) не обязательно состоит только из различных городов. В терминах теории графов — король перемещается из \(u_1\) в \(u_k\) по некоторому пути \([u_1, u_2, u_3, \dots, u_k]\), который не обязательно является простым (для всех \(j\) от \(1\) до \(k-1\) города \(u_j\) и \(u_{j+1}\) соединены дорогой).
Когда король перемещается из одного города в другой, то главы городов в знак своей дружбы обмениваются флагами.
Пример перемещения короля по маршруту \([1, 4, 2, 6]\). Цвет вершины соответствуют цвету флага в этой вершине. Из эстетических соображений, король хочет, чтобы цвет флага в городе \(i\) был равен \(d_i\) для всех \(i\) от \(1\) до \(n\). Определите, может ли король выбрать какой-то маршрут и проехать по нему так, чтобы для каждого города цвет флага в нём оказался равен желаемому цвету \(d_i\). Обратите внимание, что король может выбрать (и проехать) ровно один маршрут. В случае положительного ответа, найдите кратчайший возможный маршрут короля.
В случае, если начальные цвета флагов уже соответствуют требованиям короля (то есть \(c_i=d_i\) для всех \(i\)), то считайте, что король совершает маршрут длины \(k=0\).
Выходные данные
Выведите ответы на все наборы в порядке их следования во входных данных.
Каждый ответ должен начинаться со строки, содержащей «Yes» (в случае положительного ответа) или «No» (в случае, если искомого маршрута не существует). В случае положительного ответа следующая строка должна содержать целое число \(k\) — количество городов в кратчайшем возможном маршруте короля. Следующая строка должна содержать сам искомый маршрут \(u_1, u_2, \dots, u_k\) (\(1 \le u_i \le n\)). Вы можете не выводить эту строку, если \(k=0\).