#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main(void){
  
  while(1){
    char one[200],two[200],three[200];
    int i,j,ans1[200],ans2[200],l[200],len;
    
    for(i=0;i<200;i++){
      ans1[i]=0;
      ans2[i]=0;
      l[i]=0;
    }

   
    scanf("%[^\n]%*c",one);
    if(one[0]=='-')break;
    
    scanf("%[^\n]%*c",two);
    scanf("%[^\n]%*c",three);

    len=max(strlen(one),strlen(two));

     for(i=0;i<len;i++){
      for(j=0;j<len;j++){
	if(three[i]==one[j])l[i]=2;
	else if(three[i]==two[j])l[i]=1;
      }
    }

     for(i=0;i<strlen(one)+strlen(two);i++){
       int flag,k;
       if(l[i]==1){
	 for(k=0;k<strlen(one);k++){
	   flag=0;
	   for(j=0;j<strlen(one);j++){
	     if(one[k]==three[j-1])flag=1;
	     
	   }
	   if(!flag){
	     printf("%c",one[k]);
	     one[k]=three[j-2];
	     break;
	   }
	   if(!flag)break;
	 }
       }
       else if(l[i]==2){
	 for(k=0;k<strlen(two);k++){
	   flag=0;
	   for(j=0;j<strlen(two);j++){
	     if(two[k]==three[j])flag=1;
	   }
	   if(!flag){
	     printf("%c",two[k]);
	     two[k]=three[j-2];
	     break;
	   }
	   if(!flag)break;
	 }
	   
       }
     }
       printf("\n");
     }

     return 0; 
  }
  
int max(int x,int y){
  return (x<y)?y:x;
}