所谓过河
题号:NC221819
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

sky一到饭点便冲向了食堂,刚学会魔法的lzh见状,在他和食堂之间变出了一条无限长的大河( 宽当然是有限的 )。
幸运的是,lzh的魔法还不够精妙,长河中还留有 个残余的圆形石头(重叠部分厚度不计),
sky可以踩在上面过河,当然他不能在石头之间跳远,只有两个圆形石头相交(有重叠部分或紧贴)他才能在这两块石头上来回移动,
同样他只能通过与岸边相交的石头才能上岸或者进入河中。 sky想知道他能不能到达河对面,请你帮帮他。

输入描述:

第一行包括两个整数 ,表示石头的个数和河的宽度
sky所在的河岸边可以看作 的直线,河对面的岸可看作 的直线。
接下来 行每一行包括三个整数 ;分别表示每块石头的圆心坐标以及半径,保证所有石头的圆心都在河中。

输出描述:

如果sky能到河对面,输出”Yes“,反之输出”No“
示例1

输入

复制
2 3
1 1 1
1 3 1

输出

复制
Yes
示例2

输入

复制
2 3
1 1 1
1 4 1

输出

复制
No
示例3

输入

复制
3 3
1 2 1
2 1 1
2 2 1

输出

复制
Yes
示例4

输入

复制
1 2
2 1 1

输出

复制
Yes

备注:

关于样例的例图