#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
    int data;
    Node*next;
}Node,*LinkList;
IniteLinkList(LinkList*L)
{
    *L=(LinkList)malloc(sizeof(Node));
    (*L)->next=NULL;
}
CreateLinkList(LinkList L)
{
    int length,e;
    Node*t,*q=L;
    scanf("%d",&length);
    for(int i=0;i<length;i++)
    {
        scanf("%d",&e);
        t=(LinkList)malloc(sizeof(Node));
        t->data=e;
        t->next=q->next;
        q->next=t;
        q=t; 
    }
    
}
DeleteAndIns(int i,int len,int j,LinkList A,LinkList B)
{
    Node*head,*tail,*t;
    int cnt;
    for(t=A,cnt=1;cnt<i;cnt++) t=t->next;//t最终指向第i个结点的前一个结点 
    head=t->next;
    for(tail=head;cnt<i+len-1;cnt++)tail=tail->next;
    t->next=tail->next;//A完成删除操作 
    for(t=B,cnt=1;cnt<j;cnt++) t=t->next;
    tail->next=t->next;
    t->next=head;
    
}
OrderLinkList(LinkList L)
{
    Node*t;
    for(t=L->next;t;t=t->next)
    printf("%d ",t->data);
}
int main()
{
    LinkList A,B;
    int i,j,len;
    IniteLinkList(&A),IniteLinkList(&B);
    CreateLinkList(A),CreateLinkList(B);
    scanf("%d %d %d",&i,&len,&j);
    DeleteAndIns(i,len,j,A,B);
    OrderLinkList(A);
    printf("\n");
    OrderLinkList(B);
    return 0;
    
}