Start: Jul, 08, 2025 09:00:00
2025_7_8_Python培训班_数据结构与算法练习
End: Aug, 30, 2025 20:00:00
Time elapsed:
Time remaining:

蛇形排列(HARD) 3116

Time Limit:  1 s      Memory Limit:   256 MB
Submission:2     AC:1     Score:0

Description

某俱乐部将按照报名时间和性别进行蛇形分班。一共有 n 个人,分为 m 个班级。首先,你需要输入 n 行数据,每行包括编号、姓名、性别和分数,使用空格作为分隔符。例如"012 zs F 100.0"。然后,你需要根据以下规则对这 n 个人进行排序:

  1. 女生在前,男生在后;
  2. 同一性别的情况下,分数越高的越在前面;
  3. 如果性别和分数都相同,则按照输入顺序排列。

排序完成后,生成一个新的名次序列,并按照这个名次序列进行蛇形分班。蛇形分班的解释如下:假设 m 为 2(即有 2 个班级),那么:

接下来会多次询问 q,当 q 为 0 时退出询问。

对于每一个询问的名次 q(排完序后的名次),输出该名次对应的编号和他要去的班级,中间以空格分隔。如果 q > n 输出 "Error"。

Input

  1. 第一行包含两个整数 n(1<=n<=100) 和 m(1<=m<=100),分别表示人数和班级数。
  2. 接下来的 n 行,每行包含四个用空格分隔的元素:编号、姓名、性别、分数。性别用 'F' 表示女性,用 'M' 表示男性,分数为浮点数,编号和姓名都为字符串。

Output

对于每个询问 q:

输出对应名次 q 的编号和班级,中间用空格分隔。

如果 q > n 输出 "Error"。


Samples

input
10 2 012 ww F 120.0 002 ss M 111.0 006 sk F 111.0 098 ii F 109.0 076 ax M 111.0 001 iu F 112.0 111 as M 109.0 999 hu F 109.0 876 ys F 129.0 877 oo F 129.0 1 2 3 4 5 11 0
output
876 1 877 2 012 2 001 1 006 1 Error