卢克·天行者在试图从帝国旗舰获取机密数据时陷入了陷阱。现在他正站在飞船反应堆内一根长管道的边缘。为了应对这种情况,他只能向前移动。在卢克前方某处站着一名帝国冲锋队队员,他刚刚向卢克发射了一道爆能束。与此同时,R2-D2 不小心激活了飞船的力场。力场发生器位于管道上。这些发生器威力巨大,足以改变爆能束的运动方向。
每个发生器在爆能束从正面射来时会将其反射,而从背面射来时则会让其穿过。然而,如果爆能束从正面射来,它会摧毁该发生器。因此,发生器分为两种类型:一种面向卢克,另一种则朝向相反方向。
发生器被摧毁后,它将不再对爆能束产生影响。冲锋队队员的电池电量不足,无法再次射击,现在正躺在管道底部,因此爆能束不会击中他。
当爆能束到达卢克处时,他必须用光剑将其反射。但由于力场的作用,爆能束在被反射后只会改变方向,并继续沿管道飞行。在所有发生器被摧毁之前,卢克无法移动。此外,如果摧毁所有发生器后,爆能束再次飞向卢克,他必须再反射一次。现在他想知道是否有可能摧毁所有发生器,如果可以,他总共需要反射多少次等离子爆能束。
输入格式
第一行包含两个整数 $N$ 和 $X$,分别表示发生器的数量以及卢克与冲锋队队员之间的距离($1 \le N \le 100\,000$,$1 \le X \le 10^9$)。
接下来的 $N$ 行,每行包含两个整数。第 $i$ 行包含 $x_i$(卢克与第 $i$ 个发生器之间的距离)和发生器的类型($1 \le x_i \le 10^9$;若发生器面向卢克,类型为 $1$,否则为 $0$)。
发生器按距离卢克由近到远的顺序给出(即当 $i < j$ 时,$x_i < x_j$)。冲锋队队员的位置不会与任何发生器的位置重合。
输出格式
如果无法摧毁所有发生器,输出 $-1$。
否则,输出一个整数,表示卢克需要反射等离子爆能束的次数。
样例
输入 1
2 3 1 1 2 1
输出 1
3