\begin{problem}{Расстояние между вершинами}{distance.in}{distance.out}{2 секунды}{256 мегабайт}

\epigraph{
Коль Дейкстр\'y писать без кучи,\\
То тайм-лимит ты получишь...\\
А в совсем крутой задаче\\
Юзай кучу Фибоначчи!
}{
Спектакль преподавателей ЛКШ.июль--2007
}

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

\InputFile

Первая строка входного файла содержит два натуральных числа $n$ и $m$ --- 
количество вершин и ребер графа соответственно. Вторая строка входного файла 
содержит натуральные числа $s$ и $t$ --- номера вершин, длину пути между 
которыми требуется найти ($1 \le s, t \le n$, $s \ne t$).

Следующие $m$ строк содержат описание ребер по одному на строке. Ребро номер 
$i$ описывается тремя натуральными числами $b_i$, $e_i$ и $w_i$ --- номера 
концов ребра и его вес соответственно ($1 \le b_i, e_i \le n$, $0 \le w_i \le 100$).

$n \le 100\,000$, $m \le 200\,000$.

\OutputFile

Первая строка выходного файла должна содержать одно натуральное число --- 
вес минимального пути между вершинами $s$ и $t$.

Если путь из $s$ в $t$ не существует, выведите \texttt{-1}.

\Example

\begin{example}
\exmp{
4 4
1 3
1 2 1
3 4 5
3 2 2
4 1 4
}{
3
}%
\end{example}

\end{problem}
