#include<>
#include<>
#include<>
#define MAXSTRLEN 255
typedef struct
{
char *ch;
int length;
}HString;
void InitString(HString *P);
void StrAssign(HString *P,char charc[]);
int StrInsert(HString *S,HString *T,int pos);
void print(HString *P);
void InitString(HString *P)
{
P->ch='\0';
P->length=0;
return ;
}
void StrAssign(HString *P,char charc[])
{
int i,len;
if(P->ch)
free(P->ch);
len=strlen(charc);
if(!charc)
{
P->ch='\0';
P->length=0;
}
else
{
P->ch=(char *)malloc(len*sizeof(char));
if(!P->ch)
{
exit(-1);
}
else
{
for(i=0;i<len;i++)
{
P->ch[i]=charc[i];
}
P->length=len;
}
}
return ;
}
int StrInsert(HString *S,HString *T,int pos)
{
int i;
if(pos<1||pos>S->length+1)
{
return 0;
}
S->ch=(char *)realloc(S->ch,(S->length+T->length)*sizeof(char));
if(!S->ch)
{
exit(-1);
}
for(i=S->length-1;i>=pos-1;i--)
{
S->ch[i+T->length]=S->ch[i];
}
for(i=pos-1;i<pos-1+T->length;i++)
{
S->ch[i]=T->ch[i-(pos-1)];
}
S->length=S->length+T->length;
return 1;
}
void print(HString *P)
{
int i;
for(i=0;i<P->length;i++)
{
printf("%c",P->ch[i]);
}
printf("\n");
return ;
}
int main()
{
int pos;
HString S,T;
char chara[MAXSTRLEN];
char charb[MAXSTRLEN];
while(scanf("%s%s%d",chara,charb,&pos)!=EOF)
{
InitString(&S);
InitString(&T);
StrAssign(&S,chara);
StrAssign(&T,charb);
StrInsert(&S,&T,pos);
print(&S);
}
return 0;
}