牛魔王有一个玩具桶。
玩具桶的顶部有 m 个长方形孔,编号依次为 1, 2, ..., m。小 A 还有 n 个需要收纳的长方形玩具,编号依次为 1, 2, ..., n。
每个孔和玩具均属于以下四种类型之一:
通常,人们会将玩具放入类型相同的孔中。但是,小 A 并不在意玩具与孔的类型是否相同。只要玩具能够穿过某个孔,就可以将它放入桶中。同一个孔可以放入任意多个玩具。对于每一个玩具,请选择一个能够让它通过的孔。
每个孔和玩具均使用一个字符 s 和一个正整数 c 描述,格式为 s c。
其中 s 表示类型,c 表示周长。根据类型和周长,可以唯一确定图形的两条边:
c / 4
c / 6,长边 c / 3
c / 5,长边 3 * c / 10
3 * c / 14,长边 2 * c / 7
题目保证输入数据能够使图形的两条边均为正整数。
将玩具放入桶中之前,小 A 可以在桶盖平面内将玩具旋转若干次。每次旋转的角度必须恰好为 90 度。
设玩具的两条边分别为 a, b,孔的两条边分别为 x, y。如果以下两个条件之一成立,则玩具可以通过该孔:
或:
第二种情况表示将玩具旋转 90 度后放入孔中。
对于全部测试数据:
所有测试用例中,m + n 的总和不超过:
对于每一个孔和玩具:
字符 s 一定是 S、D、R、B 中的一个。
对于每组测试数据,四种类型的孔均至少存在一个。
记所有玩具周长中的最大值为 P,记所有孔周长中的最大值为 C。题目保证:
除上述限制外,孔和玩具的类型、大小以及排列顺序没有额外限制。
第一行包含一个整数,表示测试用例的数量。
对于每组测试用例:
第一行包含两个整数,分别表示孔的数量和玩具的数量。
接下来行,每行包含一个字符
和一个正整数
,描述一个孔。
接下来行,每行包含一个字符
和一个正整数
,描述一个玩具。
对于每组测试用例:
如果不存在合法的分类方案,输出一行。
否则,输出一行个整数
其中,表示第
个玩具通过编号为
的孔放入桶中。
每一个编号均需要满足:
如果存在多种合法方案,你可以输出任意一种。
本题使用 Special Judge。