#include<stdio.h>
#include<string.h>
#include<stdlib.h>

typedef struct List
{
	char s[35];
	struct List *next;
}List;

void insert(List *l,int num,char name[])
{
	int temp = 1,i = 0;
	List *p,*q;
	q = (List *)malloc(sizeof(List));
	for(i = 0;i < strlen(name);i ++)
	{
		q->s[i] = name[i];
	}
	q->s[i] = 0;
	//printf("q = %s\n",q->s);
	q -> next = NULL;
	p = l;
	while(p->next != NULL && temp != num)
	{
		p = p ->next;
		temp ++;
	}
	q->next = p->next;
	p->next = q;
}

void dele(List *l,char name[])
{
	List *p,*q;
	p = l;
	while(p->next != NULL)
	{
		if(strcmp(p->next->s,name) == 0)
			break;
		p = p->next;
	}
	q = p->next;
	p->next = p->next->next;
	free(q);
}

void show(List *l)
{
	List *p;
	p = l;
	while(p->next != NULL)
	{
		if(p->next->next != NULL)
			printf("%s ",p->next->s);
		else
			printf("%s\n",p->next->s);
		p = p->next;
	}
}

void search(List *l,char name[])
{
	int n = 1;
	List *p;
	p = l;
	while(p->next != NULL)
	{
		if(strcmp(p->next->s,name) == 0)
		{
			printf("%d\n",n);
			break;
		}
		p = p->next;
		n ++;
	}
}

int main()
{
	char order[10],name[35];
	int num;
	List *l = (List*)malloc(sizeof(List));
	l->next = NULL;
	while(scanf("%s",order) != EOF)
	{
		//printf("order = %s\n",order);
		if(strcmp(order,"insert") == 0)
		{
			scanf("%d",&num);
			//printf("num = %d\n",num);
			getchar();
			scanf("%s",name);
			//printf("name = %s\n",name);
			insert(l,num,name);
			//printf("%s\n",l->next->s);
		}
		else if(strcmp(order,"delete") == 0)
		{
			scanf("%s",name);
			dele(l,name);
		}
		else if(strcmp(order,"search") == 0)
		{
			scanf("%s",name);
			search(l,name);	
		}
		else if(strcmp(order,"show") == 0)
		{
			show(l);
		}
	}
	return 0;
}
/**************************************************************
	Problem: 2137
	User: admin
	Language: C
	Result: Accepted
	Time:19 ms
	Memory:1148 kb
****************************************************************/