#Lutece3354. 往日重现

往日重现

Description

平面上有 nn 个圆,保证这 nn 个圆之间没有任何公共点。

reknilB 有 mm 个问题,每个问题形如:「从 (x,y)(x,y)(p,q)(p,q) 最少要穿过多少个圆的边界。」

你需要回答他的这些问题。

Input

第一行两个整数 n,m (1n,m105)n,m\ (1\le n,m\le 10^5)

接下来 nn 行,每行三个整数 $a_i,b_i,r_i\ (-10^7\le a_i,b_i\le 10^7,1\le r_i\le 10^7)$,表示一个圆心在 (ai,bi)(a_i,b_i),半径为 rir_i 的圆。保证这 nn 个圆之间没有任何公共点。

接下来 mm 行,每行四个整数 x,y,p,q (107x,y,p,q107)x,y,p,q\ (-10^7\le x,y,p,q\le 10^7),表示一次询问。保证点 (x,y)(x,y) 和点 (p,q)(p,q) 不在任何圆上。

Output

输出 mm 行,每行输出对应问题的回答。

Samples

4 4
1 0 2
2 0 4
8 0 1
12 0 2
1 0 2 0
4 -1 2 0
4 -1 8 0
4 -1 12 0
0
1
2
2

Note

对于第一个询问,如图中从 AA 点到 CC 点,不需要穿过任何圆的边界,因此输出 00

对于第二个询问,如图中从 II 点到 CC 点,需要穿过圆 AA 的边界,因此输出 11

对于第三个询问,如图中从 II 点到 EE 点,需要穿过圆 CC 和圆 EE 的边界,因此输出 22

对于第四个询问,如图中从 II 点到 GG 点,需要穿过圆 CC 和圆 GG 的边界,因此输出 22。请注意,为了穿过最少的圆边界,移动路线可以不是一条直线。因此对于这组询问,我们只需要在移动中绕过圆 EE 围成区域即可,一种可能的移动路径用红色线标出。

Resources

The 21st UESTC Programming Contest Preliminary