import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] name=new String[n];
int[] score=new int[n];
int i=0;
for(i=0;i<n;i++)
{
name[i]=sc.next();
score[i]=sc.nextInt();
}
while(sc.hasNext())
{
String x = sc.next();
int flag=1;
switch(x)
{
case "A":
int t=0;
String u="a";
score=Arrays.copyOf(score, score.length+1);
name=Arrays.copyOf(name, name.length+1);
name[name.length-1]=sc.next();
score[score.length-1]=sc.nextInt();
for(i=name.length-1;i>0;i--)
{
if(score[i]>score[i-1])
{
t=score[i-1];score[i-1]=score[i];score[i]=t;
u=name[i-1];name[i-1]=name[i];name[i]=u;
}
}
break;
case "Q":
int l;
String qname = sc.next();
for(i=0;i<name.length;i++)
{
if(qname.equals(name[i])==true)
{
for(l=i;l<name.length-1;l++)
{
name[l]=name[l+1];
score[l]=score[l+1];
}
}
}
score=Arrays.copyOf(score, score.length-1);
name=Arrays.copyOf(name, name.length-1);
break;
case "C":
int h;
String aname = sc.next();
int add = sc.nextInt();
for(i=0;i<name.length;i++)
{
if(aname.equals(name[i])==true)
{
score[i]+=add;
}
}
for(h=i-1;h>0;h--)
{
if(score[h]>score[h-1])
{
t=score[h-1];score[h-1]=score[h];score[h]=t;
u=name[h-1];name[h-1]=name[h];name[h]=u;
}
}
break;
case "S":
for(i=0;i<name.length;i++)
{
System.out.println(name[i]+" "+score[i]);
}
break;
case "O":
int j=0, k=0, m=0;
flag=0;
System.out.print("#1 : "+name[j]);
j++;
while(true)
{
if(score[j]==score[k])
{
System.out.print(" "+name[j]);
j++;
}
else break;
}
System.out.println("");
System.out.print("#2 :");
for(m=2;m>0;m--)
{
k=j;
System.out.print(" "+name[j]);
j++;
while(true)
{
if(score[j]==score[k])
{
System.out.print(" "+name[j]);
j++;
}
else break;
}
}
System.out.println();
System.out.print("#3 :");
for(m=3;m>0;m--)
{
k=j;
System.out.print(" "+name[j]);
j++;
while(true)
{
if(score[j]==score[k])
{
System.out.print(" "+name[j]);
j++;
}
else break;
}
}
System.out.println();
break;
}
if(flag==0) break;
}
sc.close();
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] name=new String[n];
int[] score=new int[n];
int i=0;
for(i=0;i<n;i++)
{
name[i]=sc.next();
score[i]=sc.nextInt();
}
while(sc.hasNext())
{
String x = sc.next();
int flag=1;
switch(x)
{
case "A":
int t=0;
String u="a";
score=Arrays.copyOf(score, score.length+1);
name=Arrays.copyOf(name, name.length+1);
name[name.length-1]=sc.next();
score[score.length-1]=sc.nextInt();
for(i=name.length-1;i>0;i--)
{
if(score[i]>score[i-1])
{
t=score[i-1];score[i-1]=score[i];score[i]=t;
u=name[i-1];name[i-1]=name[i];name[i]=u;
}
}
break;
case "Q":
int l;
String qname = sc.next();
for(i=0;i<name.length;i++)
{
if(qname.equals(name[i])==true)
{
for(l=i;l<name.length-1;l++)
{
name[l]=name[l+1];
score[l]=score[l+1];
}
}
}
score=Arrays.copyOf(score, score.length-1);
name=Arrays.copyOf(name, name.length-1);
break;
case "C":
int h;
String aname = sc.next();
int add = sc.nextInt();
for(i=0;i<name.length;i++)
{
if(aname.equals(name[i])==true)
{
score[i]+=add;
}
}
for(h=i-1;h>0;h--)
{
if(score[h]>score[h-1])
{
t=score[h-1];score[h-1]=score[h];score[h]=t;
u=name[h-1];name[h-1]=name[h];name[h]=u;
}
}
break;
case "S":
for(i=0;i<name.length;i++)
{
System.out.println(name[i]+" "+score[i]);
}
break;
case "O":
int j=0, k=0, m=0;
flag=0;
System.out.print("#1 : "+name[j]);
j++;
while(true)
{
if(score[j]==score[k])
{
System.out.print(" "+name[j]);
j++;
}
else break;
}
System.out.println("");
System.out.print("#2 :");
for(m=2;m>0;m--)
{
k=j;
System.out.print(" "+name[j]);
j++;
while(true)
{
if(score[j]==score[k])
{
System.out.print(" "+name[j]);
j++;
}
else break;
}
}
System.out.println();
System.out.print("#3 :");
for(m=3;m>0;m--)
{
k=j;
System.out.print(" "+name[j]);
j++;
while(true)
{
if(score[j]==score[k])
{
System.out.print(" "+name[j]);
j++;
}
else break;
}
}
System.out.println();
break;
}
if(flag==0) break;
}
sc.close();
}
}