题目描述
一天,LittleDonald想要洗干净他的n张被单。洗完所有被单之后,他把它们放在后院的平地上晒干。Donald很好的摆放了这些被单,使得这些被单两 两之间不会在端点或边上接触,并且两两之间的边不会相交,但是可能一张更小的被单会放在一张更大的被单上面,或者一张被单会完全覆盖另外一张被单。做完这些事之后,Donald就去睡觉了。
然而,Donald的朋友,Kim,知道了Donald正在晒被单并且决定恶搞Donald。他从他爸爸的阁楼找到了一把彩弹枪。在这把枪中有m颗 彩弹,可能会有许多种不同颜色的彩弹,同时也可能有许多彩弹是有同一种颜色的。
在Donald睡着之后,Kim就进到Donald家的后院并开始用彩弹枪向这些被单射击。每次一张被单被射击之后,这个彩弹的颜色就会染在这张被单以及所有在这张被单下面的被单上。在Kim用完所有的彩弹之后,他就会开心地离开Donald家的后院。
当Donald醒来并且到后院看到自己的被单的时候,他被震惊了。在Donald的大多数被单上面都有许多新的颜色。由于Donald对于正确的数据十分感兴趣 ,并且他被震惊到无法思考了,所以他想让你告诉他每张被单上面的颜色的数量。
Donald的后院可以用一个平面坐标系表示,被单的边都是平行于坐标轴的,Kim射击的位置可以看成在平面中的一个点。
注意:Kim的一次射击可能不会到任意一个被单上,射击的位置两两之间互不相同。
输入格式
第一行两个正整数n(1≤n≤80000)和m(1≤m≤80000),分别表示被单的数量和彩弹的数量
接下来n行,这n行中的第i行用四个数字A[i],B[i],C[i],D[i](1≤A[i],B[i],C[i],D[i]≤1e9)描述一张被单,
表示这张被单的左下角在(A[i],B[i]),右上角在(C[i],D[i])
接下来m行,这m行中的第i行用三个数字X[i],Y[i],K[i](1≤X[i],Y[i],K[i]≤1e9)描述一次射击,表示这次射击的位置是在点(X[i],Y[i]),以及这次射出去的彩弹的颜色为K[i]
输出格式
输出共n行,第i行表示染在第i张被单上面的颜色种数。
样例
输入样例1
2 2
1 1 3 3
5 6 10 10
3 3 1
5 1 2
输出样例1
1
0
输入样例2
3 3
1 1 7 7
2 2 6 6
3 3 5 5
4 4 1
2 6 2
4 7 3
输出样例2
3
2
1
输入样例3
1 3
1 1 7 7
2 6 2
4 7 3
4 4 1
输出样例3
3
提示
样例1解释
点上的数字表示这次射击的彩弹的颜色。
样例2解释
数据范围
对于100%的数据
1≤n≤80000
1≤m≤80000