#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <map>
#include <string>
#include <queue>
using namespace std;
#define MAX 1000 //队列数
int main()
{
freopen("data5_6.in", "r", stdin);
freopen("data5_6.out", "w", stdout);
int num,p_n,p_m,count=;
string cmd;
while ((cin >> num)&&num!=)
{
cout << "Scenario #" << count++ << endl; //输出信息
map<int, int> p_t; //全部人员信息 队员和队号
//实时排队信息
queue<int> t_num; //按顺序保存当前队列中的队列号
queue<int> p_num[MAX]; //用于保存当前在排队的各个队伍中的人员编号
for (int i = ; i <= num; i++) //获取队列信息
{
cin >> p_n;
for (int j = ; j <= p_n; j++)
{
cin >> p_m;
p_t.insert(pair<int, int>(p_m,i-));
}
}
while ((cin >> cmd)&&cmd!="STOP") //开始进行操作
{
if (cmd[]=='E') //入队
{
cin >> p_m; //获取队员编号
p_n = p_t[p_m]; //获取队列编号
if (p_num[p_n].size() == ) //如果当前排队中没有该队伍
{
t_num.push(p_n); //将队号一块插入
p_num[p_n].push(p_m);
}
else //如果当前排队中有该队伍,则直接插入到对应队列中
p_num[p_n].push(p_m);
}
else if (cmd[] == 'D') //出队
{
p_n = t_num.front(); //获取第一个队列号,和该队列中的第一个队员
p_m = p_num[p_n].front();
p_num[p_n].pop(); //将该队员出队
cout << p_m << endl; //输出队员编号
if (p_num[p_n].size() == ) //判断是否是自己队伍中的最后一个人,是的话,将队伍号出队
t_num.pop();
}
}
cout << endl; //输出信息 空行
}
freopen("CON", "r", stdin);
freopen("CON", "w", stdout);
return ;
}