#P11007. 比赛排名

比赛排名

题目描述

nn 名选手(编号依次是 A、B、C、D...\verb|A、B、C、D...|)参加比赛,赛前每位选手对比赛结果进行了简单的预测,每位选手预测的内容都是关于某一位选手的赛后排名,比赛志愿者将选手们预测内容记录了下来,志愿者书写预测内容的格式如下(以 66 位选手参赛为例,以下仅是举例说明预测内容的格式):

  1. 选手 A\verb|A| 预测选手 D\verb|D| 排第 11 名,那么书写的预测内容是:D=1\verb|D=1|
  2. 选手 B\verb|B| 预测自己的排名在前两名,那么书写的预测内容是:B<=2\verb|B<=2|
  3. 选手 C\verb|C| 预测选手 A\verb|A| 不会得第三名,那么书写的预测内容是:A!=3\verb|A!=3|
  4. 选手 D\verb|D| 预测选手 E\verb|E| 不能进入前四名,那么书写的预测内容是:E>4\verb|E>4|
  5. 选手 E\verb|E| 预测选手 C\verb|C| 的不会得第一名,也不会得第二名,那么书写的预测内容可以是:C>2\verb|C>2|
  6. 选手 F\verb|F| 预测自己会是最后三名中的一位,那么书写的预测内容可以是:F>=4\verb|F>=4|

比赛结束后,没有出现并列名次,志愿者根据最后的名次分析统计发现 排名k1,k2,k3,...k_1,k_2,k_3,... 的这些选手赛前的预测是正确的(其他排名的选手赛前的预测都是错误的),并将这些特殊的排名名次记录到了表格里。

比赛结束很长一段时间后,记录最终排名的资料不慎丢失了,但记录比赛前每位选手预测内容的表格、赛后志愿者记录下来的 赛前预测是正确的那些选手的最终名次 的表格都还存在。聪明的你需要根据这些信息推导出比赛最终排名。

输入格式

11 行是一个正整数 nn,表示参赛选手人数。

2(n+1)2~(n+1) 行依次是每位选手(选手 A、B、C、D...\verb|A、B、C、D...|)赛前的预测内容,预测内容由三部分组成:第一部分是一个大写字母,表示选手编号;第二部分是比较运算符 =!=>>=<<= 中的一种;第三部分是介于1n1~n 的名次。具体格式可以参阅前面的描述。

n+2n+2 行有若干用一个空格隔开的正整数 kik_i,就是赛后志愿者记录下来的 赛前预测是正确的那些选手的最终名次

输出格式

符合条件的最终排名可能不止一种方案。假设有 mm 种方案,那么输出的前 mm 行每行是一种符合条件的最终排名方案(按照选手序号顺序依次输出每位选手的排名名次),这些方案输出时要满足字典顺序。行内整数间用一个空格隔开。最后一行是方案数 mm

输入输出样例

6
D=1
B<=2
A!=3
E>4
C>2
F>=4
1 2 3 4 5 6
4 2 3 1 5 6 
4 2 3 1 6 5 
5 2 3 1 6 4 
6 2 3 1 5 4 
4
5
E=1
B=2
A=5
C!=1
D=1
1 2
3 4 5 1 2
3 5 4 1 2
4 3 5 1 2
4 5 3 1 2
5 2 1 3 4
5 2 1 4 3
6
4
A=1
B=2
B<3
D>2
1 2 3
4 2 1 3 
1

说明/提示

👀️ 对于100%100\% 的数据,4n91kin4 \leq n \leq 9,1\leq k_i \leq n