#CYTUS4. 离站准备

离站准备

有 n 个通信终端位于一条直线上。终端 i 的坐标为 x_i,每次从它发出一条消息需要准备费用 c_i。它支持一个或两个频道。

如果终端 i 与终端 j 至少有一个共同频道,消息就可以从 i 直接发送到 j,费用为:

c_i + |x_i − x_j|

一次直接发送可以跨过任意多个其他终端,不会因此在那些终端重新发送或收取准备费用。

消息也可以经过若干终端转发。每次转发都按上述规则重新收费。不同终端可以有相同的坐标。

求将一条消息从终端 s 送到终端 t 的最小总费用。如果无法送达,输出 −1。如果 s=t,可以不发送,费用为 0。

输入格式

本题只有一组输入数据。

第一行包含四个整数 n、k、s、t,分别表示终端数、频道总数、起点和终点。

接下来 n 行,第 i 行的格式为:

x_i c_i d_i h_1 h_2 ... h_{d_i}

其中 d_i 为终端 i 支持的频道数量,后面的 d_i 个整数为频道编号。

输出格式

输出最小总费用;无法送达时输出 −1。

数据范围

  • 1 ≤ n,k ≤ 200000;
  • 1 ≤ s,t ≤ n;
  • −10^9 ≤ x_i ≤ 10^9;
  • 0 ≤ c_i ≤ 10^9;
  • 1 ≤ d_i ≤ min(2,k);
  • 每个频道编号在 [1,k] 内,同一个终端的频道编号互不相同。

样例

4 2 1 4
0 2 1 1
5 100 1 1
10 1 2 1 2
12 7 1 2
15

说明:从终端 1 直接发送到终端 3,费用为 2+10=12;再从终端 3 发送到终端 4,费用为 1+2=3。第一步跨过终端 2,但不收取终端 2 的准备费用。

下载样例数据