#include<stdio.h>
#include<string.h>
#define MAX 1000

char text[MAX];
int cursor,length=0;

void initialize()
{
    int i;
    for(i=0;i<MAX;i++)
    {
        text[i]=0;
    }
}

void run(int first,int second)
{
    int i;

    if(first=='f')
    {
        if(second=='c')
        {
            if(cursor!=length)
            {
                cursor++;
            }
        }
        else if(second=='w')
        {
            for(i=cursor+2;i<strlen(text);i++)
            {
                if(text[i]==32)
                {
                    break;
                }
            }
            cursor=i;
        }
    }
    else if(first=='b')
    {
        if(second=='c')
        {
            if(cursor!=0)
            {
                cursor--;
            }
        }
        else if(second=='w')
        {
            for(i=cursor-1;i>=0;i--)
            {
                if(text[i]==32)
                {
                    break;
                }
            }
            cursor=i+1;
        }
    }
    else if(first=='d')
    {
        if(second=='c')
        {
            int c;
            for(i=cursor;i<length;i++)
            {
                text[i]=text[i+1];
                if(text[i+1]==0)
                {
                    break;
                }
            }
            length--;
        }
        else if(second=='w')
        {
            int len;
            for(i=cursor;i<length;i++)
            {
                if(text[i]==32)
                {
                    break;
                }
            }
            len=i-cursor;
            for(i=cursor;i<length;i++)
            {
                text[i]=text[i+len+1];
                if(text[i+len+1]==0)
                {
                    break;
                }
            }
            length=strlen(text);
        }
    }
}

int main(void)
{
    int n,m;
    int i,j,k;

    scanf("%d\n",&n);

    for(i=0;i<n;i++)
    {
        initialize();
        cursor=0;
        gets(text);

        length=strlen(text);

        scanf("%d%*c",&m);

        for(j=0;j<m;j++)
        {
            char command[100]={};
            scanf("%s%*c",command);

            if(command[0]=='i')
            {
                char plus[MAX]={};
                char temporary[MAX]={};

                scanf("%*c");
                gets(plus);

                if(cursor>0)
                {
                    strcpy(temporary,text);
                    strncpy(text,temporary,cursor-1);
                    text[cursor]='\0';
                    strcat(text,plus);

                    int len=strlen(text)-1;
                    int k,l=cursor;
                    for(k=len;k<MAX;k++)
                    {
                        text[k]=temporary[l];
                        if(temporary[l]==0)
                        {
                            break;
                        }
                        l++;
                    }
                }
                else
                {
                    strncpy(temporary,plus,strlen(plus)-1);
                    temporary[strlen(plus)]='\0';
                    strcat(temporary,text);
                    strcpy(text,temporary);
                }
                cursor+=strlen(plus)-1;
            }
            else
            {
                char command2[10];
                scanf("%s%*c",command2);
                //run(command[0],command2[0]);
            }

            /*for(k=0;k<cursor;k++)
            {
                printf("%c",text[k]);
            }
            printf("^");
            for(k=cursor;k<strlen(text)+1;k++)
            {
                printf("%c",text[k]);
            }
            printf("\n");
            */
        }

        for(k=0;k<cursor;k++)
        {
            printf("%c",text[k]);
        }
        printf("^");
        for(k=cursor;k<strlen(text)+1;k++)
        {
            printf("%c",text[k]);
        }
        printf("\n");
    }
    return 0;
}