#include <stdio.h>
#include <stdlib.h>
typedef struct linkedlist {
struct list* head;
// node* tail;
}linkedlist;
typedef struct list {
int data;
struct list* next;
}node;
void insertNode(linkedlist* l, int data, int flag) {//맨뒤에 삽입 flag=-1, else flag=정수
node* newNode = (node*)malloc(sizeof(node));
newNode->data = data;
newNode->next = NULL;
if (l->head == NULL)// && l->tail == NULL)
{
l->head = newNode;
// l->tail = newNode;
}
else {
if (flag == -1) {
node* ptr = l->head;
while(ptr->next!=NULL) {
ptr = ptr->next;
}
ptr->next = newNode;
// l->tail->next = newNode;
// l->tail = newNode;
}
else if (flag == 0) {
newNode->next = l->head;
l->head = newNode;
}
else {
node* ptr = l->head;
for (int i = 0; i < flag-1; i++) {
ptr = ptr->next;
}
newNode->next = ptr->next;
ptr->next = newNode;
}
}
}
void deleteNode(linkedlist* l, int flag) {
node* ptr = l->head;
for (int i = 0; i < flag-1; i++) {
ptr = ptr->next;
}
ptr->next = ptr->next->next;
}
int main(void)
{
setbuf(stdout, NULL);
for (int test_case = 1; test_case <= 10; test_case++) {
int n;
scanf("%d", &n);
linkedlist *l = (linkedlist*)malloc(sizeof(linkedlist));
l->head = NULL;
// l->tail = NULL;
for (int i = 0; i < n; i++) {
int temp;
scanf("%d", &temp);
insertNode(l, temp, -1);
}
int k;
scanf("%d\n", &k);
for (int i = 0; i < k; i++) {
char c;
scanf("%c ", &c);
// scanf("%c", &c);
if (c == 'I') {
int a, b;
scanf("%d %d ", &a,&b);
for (int j = 0; j < b; j++) {
int d;
scanf("%d ", &d);
insertNode(l, d, a+j);
}
}
else if (c == 'D') {
int a, b;
scanf("%d %d ", &a,&b);
for (int j = 0; j < b; j++) {
deleteNode(l, a);
}
}
else {
printf("error\n");
}
}
printf("#%d", test_case);
node* ptr = l->head;
for (int i = 0; i < 10; i++) {
printf(" %d", ptr->data);
ptr = ptr->next;
}
printf("\n");
}
return 0;
}