\begin{problem}{Дерево}{tree.in}{tree.out}{2 секунды}{256 мегабайт}
                                                                    
%Автор задачи: Войт Захар
%Автор условия: Войт Захар
  
Недавно на уроке информатики Саша узнала о двоичных деревьях поиска.

Двоичным деревом поиска называется двоичное дерево, в каждой вершине которого написано число, называемое ключом этой вершины.
Причем ключ, записанный в вершине, больше всех ключей, записанных в левом поддереве этой вершины, но меньше всех ключей,
записанных в ее правом поддереве.

Такая организация чисел позволяет эффективно реализовать структуру данных <<множество чисел>>.
То есть мы можем построить двоичное дерево поиска по некоторому множеству чисел, а потом эффективно
проверять, принадлежит ли то или иное число этому множеству.

Саша уже реализовала двоичное дерево поиска.
Но вдруг она поняла, что хранить множество чисел~--- не очень интересно.
Намного интереснее хранить структуру данных, представляющую собой так называемый <<ассоциативный массив>>.
Это такая структура данных, в которой для каждого ключа хранится некоторое другое число, называемое значением этого ключа.
То есть, в каждой вершине дерева находится по два числа~--- ключ и значение, причем 
это дерево является двоичным деревом поиска по ключам вершин.

Так как Саша уже реализовала двоичное дерево поиска, то она хочет придумать такую структуру ассоциативного массива, 
при которой ей пришлось бы хранить в вершине только одно число.

Определим такую операцию над двоичным деревом поиска, хранящим пары ключ-значение:
Новым ключом левого сына данной вершины становится ключ данной вершины,
а новым ключом ее правого сына~--- ее значение. Если у вершины до выполнения операции
не было левого или правого сына, то он появляется и получает соответствующий ключ.
Новым ключом корня становится некоторое число $ T $.

Вам дано двоичное дерево поиска, но не даны значения, хранящиеся в вершинах.
Выведите любой подходящий набор таких значений (где каждое число целое и лежит в диапазоне от $ 1 $ до $ 10^9 $) при которых дерево, полученное операцией, описанной выше,
будет являться деревом поиска. Или определите, что это невозможно.

\InputFile
В первой строке входного файла через пробел даны два числа $ n $ и $ T $ ($ 1 \le n \le 10^5 $, $ 1 \le T \le 10^9 $)~--- количество вершин в исходном дереве и ключ корня в новом дереве.

В следующих $ n $ строках перечислена информация о вершинах.
На $i$-ой строке находятся три числа $ l_i $, $ r_i $, $ a_i $ ($ 1 \le l_i \le n $,
$ 0 \le r_i \le n $, $ 0 \le a_i \le 10^9 $)~--- номер вершины, являющейся левым потомком вершины $ i $,
номер вершины, являющейся ее правым потомком и ключ этой вершины.
Если у вершины нет какого-то потомка, то вместо соответствующего числа в файле записан 0.
Первая вершина является корнем дерева.

\OutputFile
Если решения не существует, то в первой строке выходного файла выведите \texttt{-1}.
Иначе, выведите $ n $ чисел~--- для каждой вершины выведите значение в ней.
Каждое число должно быть целым и лежать в диапазоне от $ 1 $ до $ 10^9 $

\Example
\begin{example}%
\exmp{
3 4
2 3 2
0 0 1
0 0 5
}{
6 3 7
}%
\end{example}
 

%% Фома обнаружил, что под прикрытием благотворительного фонда по спасению леопардов Елена Андреевна собирается провернуть
%% финансовую махинацию.

%% В схеме участвует $ N $ человек. Участники схемы образуют двоичное дерево.
%% Каждый участник, кроме участников-листьев, знает номера двух других участников.
%% Обозначим за $ l_i $ номер первого участника, которого знает участник под номером $ i $, 
%% а $ r_i $~--- номер второго такого участника.

%% Также, у каждого участника есть по два счета с деньгами. Обозначим
%% за $ a_i $ количество денег на первом его счету $ i $, а
%% за $ b_i $~--- количество денег на втором его счету.

%% Дерево устроено таким образом, что для любой вершины $ i $ и для всех вершин $ j $, принадлежащих ее левому поддереву
%% (вершина $ l_i $ и все ее потомки) $ a_j < a_i $. А для всех вершин $ k $, принадлежащих ее правому поддереву
%% (вершина $ r_i $ и все ее потомки) $ a_k > a_i $. Другими словами, это дерево является деревом поиска по $ a $.

%% Сама махинация устроена так: каждый участник, не являющийся листом, в нужный момент времени переводит 
%% $ a_i $ денег участнику с номером $ l_i $, а $ b_i $ денег участнику с номером $ r_i $,
%%участники-листья же, переводят деньги с обоих своих счетов в фонд по спасению леопардов, а оттуда 
%%Елена Андреевна получает $ T $ денег ($ T $ никак не зависит от переведенных участниками-листьями денег, то есть может быть как больше, так и меньше).

%% Обозначим за $ c_i $ количество денег после проведения махинации у человека с номером $ i $.
%% Так как Елена Андреевна четко контролирует количество денег каждого из своих подчиненных, то
%% известно, что после проведения махинации полученное дерево будет являться деревом поиска
%% по $ c $. То есть, для всех $ j $ в левом поддереве $ i $~--- $ c_j < c_i $, а для всех
%% $ k $ в правом поддереве $ i $~--- $ c_k > c_i $.

%% Фома решил предупредить братву об этой махинации, но ему нужны доказательства.
%% А именно, нужно понять сколько денег сейчас находится на счетах у участников схемы.
%% Для всех $ i $ Фома знает $ a_i $~--- количество денег на первом счету у участника $ i $.
%% Осталось выяснить $ b_i $--- количество денег на втором счету.

%% Помогите Фоме разобраться в ситуации. По заданному дереву участников схемы и величинам $ a_i $ и $ T $
%% определите возможные значения $ b_i $ для каждого участника или определите, что решения не существует.
%% Если возможных решений несколько, то выведите любое.

%% \InputFile
%% В первой строке входного файла через пробел даны два числа $ n $ и $ T $ ($ 1 \le n \le 10^5 $, $ 1 \le T \le 10^9 $)~--- количество участников
%% и количество денег, собранных Еленой Андреевной.
%% В следующих $ N $ строках перечислена информация об участниках схемы.
%% Если участник под номером $ i $ является листом, то на $i$-ой строке находится одно число~--- 0.
%% Ecли же участник под номером $ i $ является вершиной, то на $i$-ой строке находятся три числа $ l_i $, $ r_i $, $ a_i $ ($ 1 \le l_i \le n $,
%% $ 1 \le r_i \le n $, $ 1 \le a_i \le 10^9 $).
%% Первый участник является корнем дерева.

%% \OutputFile
%% Если решения не существует, то в первой строке выходного файла выведите ``-1'';
%% Иначе, выведите $ n $ чисел~--- для каждого участника выведите значение $ b_i $, если участник $ i $ является листом дерева,
%% то выведите $ 0 $.

%% \Example
%% \begin{example}%
%% \exmp{
%% 7 4
%% 2 3 2
%% 4 5 1
%% 6 7 5
%% 0
%% 0
%% 0
%% 0
%% }{
%% 6 3 7 0 0 0 0
%% }%
%% \end{example}
  


\end{problem}
