面基
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

这一天,xmy去黑职找cr,xmy从哈东站下车后发现他的缺德地图开始缺德了。
因为缺德地图炸了,所以xmy翻出了plan B。
xmy拿出了一张地图。地图上有M段路。
每段路连接着两个路口。
并且标记出了两个路口的编号A和B,长度L(单位米)。还有一个标记W(标记是1为单向边 标记是2为双向边)。
xmy每秒可以走S米。
注:每个路口的编号是唯一的 编号相同的话 代表是同一个路口。
已知哈东站所在位置的编号为Xa,黑职所在的路口编号为Xb。
由于xmy太菜了,他想知道哈东站走路到黑职最快要多久,但是他不会算,就把数据发给了 hlj.king.cr。
cr看了一眼太简单了,把数据给了你,要你算好,然后发给xmy。
你只需要算好,最少需要多少秒可以从哈东站到达黑职就可以。如果出现小数向上取整。
如果不能从哈东站到达黑职,请输出-1。

输入描述:

第一行四个整数 M Xa Xb S
  
以下M行,每行为四个整数 A B L W
   

输出描述:

输出一个整数 需要多少秒(向上取整)
如果不能从哈东站到达黑职,请输出-1。
示例1

输入

复制
6 1 3 2
1 2 2 1
2 3 2 1 
2 4 1 1
1 3 5 1
3 4 3 1
1 4 4 1

输出

复制
2

说明

起点在1 终点在3 1到3的最短路  1-2 2-3 4米