#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
struct LIST
{
int v;
int tnum;
struct LIST *next;
};
int team[1000000];
LIST *p[10050];//1
LIST l[2000030];
int top;
int main()
{
// freopen("ex.in","r",stdin);
int k=0,t,n,temp;
char str[9];
while(scanf("%d",&t)&&t)
{
printf("Scenario #%d\n",++k);
memset(team,0,sizeof(team));
memset(p,0,sizeof(p));
for(int i=1; i<=t; i++)
{
scanf("%d",&n);
for(int j=0; j<n; j++)
{
scanf("%d",&temp);
team[temp]=i;
}
}
top=0;
LIST h,*e=&h,*head=&h,*pp;
h.next=NULL;
int count=0;
while(scanf("%s",str))
{
count++;
if(str[0]=='E')
{
scanf("%d",&temp);
l[top].v=temp;
l[top].tnum=team[temp];
if(p[team[temp]]==NULL)
{
e->next=&l[top];
e=&l[top];
p[team[temp]]=&l[top];
l[top].next=NULL;
}
else
{
l[top].next=p[team[temp]]->next;
if(p[team[temp]]->next==NULL)//开始没考率全面!!wa了n次
e=&l[top];
p[team[temp]]->next=&l[top];
p[team[temp]]=&l[top];
}
++top;
}
else if(str[0]=='D')
{
pp=head->next;
printf("%d\n",pp->v);
if(pp->next==NULL||pp->tnum!=pp->next->tnum)//一个也没有的时候pp->next==NULL
p[team[pp->v]]=NULL;
// p[pp->tnum]=NULL;//等同
head=head->next;
}
else if(str[0]=='S')
break;
}
printf("\n");
}
return 0;
}