semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
    int i,j,k,hh,la,lb,ls,same,head,end,l,sum;
    char s[100],a[100],b[100];
    gets(s);
    gets(a);
    gets(b);
    ls=strlen(s);
    la=strlen(a);
    lb=strlen(b);
    hh=0;
    sum=0;
    for(i=0;i<ls;i++){
                      same=0;
                      if((s[i]==a[0])&&(i==0||s[i-1]==' ')){
                                     l=1;
                                     for(j=1;j<la;j++){
                                                       if(a[j]!=s[i+j]){
                                                                        same=0;
                                                                        break;
                                                                        }
                                                       l++;
                                                       same=1;
                                                       head=i;
                                                       end=i+la-1;
                                                       }
                                     }
                      if((same==1)&&(i+la==ls||s[i+la]==' ')){
                                   for(k=hh;k<head;k++)
                                   printf("%c",s[k]);
                                   for(k=0;k<lb;k++)
                                   printf("%c",b[k]);
                                   hh=end+1;
                                   sum=1;
                                  }
                      }
    if(sum==0){
                printf("%s",s);
                }
    if(sum==1){
                for(i=hh;i<ls;i++)
                printf("%c",s[i]);
                }
     return 0;
}
void main()
{
	char *s,*a,*b,*word;
	int i,j=0,flag=0;
	s=(char*)malloc(100*sizeof(char));
	a=(char*)malloc(100*sizeof(char));
	b=(char*)malloc(100*sizeof(char));
	word=(char*)malloc(100*sizeof(char));
	gets(s);
	gets(a);
	gets(b);
	i=0;
	while(*(s+i))
	{
		if (*(s+i)==' ')
		{
			if (flag!=0) printf(" ");
			flag=1;
			*(word+j)='\0';
			j=0;
			if (strcmp(word,a)==0)	printf("%s",b);
			else printf("%s",word);
		}
		else 
		{
			*(word+j)=*(s+i);
			j++;
		}
		i++;
	}
	*(word+j)='\0';
	if (flag!=0) printf(" ");
	if (strcmp(word,a)==0)	printf("%s",b);
	else printf("%s",word);
	
}
int main()
{
    char st[101];
    char word1[101], word2[101];
    int match[101];
    
    memset(match, 1, sizeof(match));
    
    gets(st);
    gets(word1);
    gets(word2);
    
    int len1 = strlen(st), len2 = strlen(word1), len3 = strlen(word2);
    
    int i, j, k;
    for (i = 0; i < len1; i++) {
        if ((i == 0 || st[i-1] == ' ') && i+len2 <= len1) {
            for (j = 0; j < len2; j++) {
                if (st[i+j] != word1[j])
                    match[i] = 0;
            }
        }
    }
    
    for (i = 0; i < len1; i++) {
        if (!match[i]) {
            for (j = i; j < len1; j++) {
                putchar(st[j]);
                if (st[j] == ' ') break;
            }
            i = j;
        } else {
            i += len2;
            printf("%s", word2);
            if (i < len1) putchar(' ');
        }
    }
    puts("");
    
    return 0;
}
int main()
{
	char s[300],a[100],b[100];
	int t1,t2,t3,m,i;
	gets(s);
	gets(a);
	gets(b);
	t1=strlen(s);
	t2=strlen(a);
	t3=strlen(b);
	for (i=0;s[i];i++)
	{
		m=-1;
		if (s[i]==a[0] && (s[i-1]==' ') || i==0)           //:???s??????
		{
			for (int j=0;j<t2;j++)  
			{
				if (s[i+j]==a[j] && ((s[i+t2]==' ' || s[i+t2]=='\0') || a[t2]=='\0'))
			        m=i;
				else 
				{m=-1;break;}
			}
		}
		if (m==i)
		{
			//:cout<<i<<endl;
			if (t3>t2)       //:?b????a???s?????????????
			{
				for (int u=strlen(s);u>=(t2+m);u--)
				{
					s[u+t3-t2]=s[u];
				}
				for (int p=m;p<t3+m;p++)
				{
					s[p]=b[p-m];
				}
			}
			else if (t3<=t2)        //:?b????a???a???b????????????????????
			{
				for (int k=m;k<t3+m;k++)
				{
					s[k]=b[k-m];
				}
				for (int l=t3+m;l<t2+m;l++)
				{
					s[l]=' ';
				}
				for (int u=t2+m;u<strlen(s)-t3+t2;u++)
				{
					s[u-t2+t3]=s[u];
				}
			}

		}
	}
	puts(s);
	return 0;
}
int main()
{
    char s[101], a[101], b[101], c[203];
    s[0] = a[0] = b[0] = ' ';
    gets(&s[1]);
    cin >> &a[1] >> &b[1];
    int slen = strlen(s) + 1,
        alen = strlen(a) + 1,
        blen = strlen(b) + 1;
    s[slen - 1] = a[alen - 1] = b[blen - 1] = ' ';
    s[slen] = a[alen] = b[blen] = '\0';
    int i, j;
    for (i=0, j=0; i<slen; ++i, ++j)
    {
        if (strncmp(s+i, a, alen) == 0)
        {
            strcpy(c+j, b);
            i = i + alen - 1;
            j = j + blen - 1;
        }
        else
        {
            c[j] = s[i];
        }
    }
    c[j-1] = 0;
    cout << &c[1] << endl;
    return 0;
}
char former[150];
char zhao[10],huan[10];
void alter(char*p)
{
	
	char *p2;
	p2=p+strlen(zhao)+1;
	char p3[100];
	strcpy(p3,p2);
	*(p+1)='\0';
	strcat(former,huan);
	strcat(former,p3);
}

int main()

{
	
	int i;
	
	gets(former);
	scanf("%s%s",zhao,huan);
	char *p0,*p1;
	p0=former;
	for(;*p0!='\0';p0++)
	{	
		if(*p0==' '&&*(p0+1)==zhao[0])
		{
			for(p1=p0+1,i=0;*p1==zhao[i]&&zhao[i]!='\0';p1++,i++);
			if((*p1==' '||*p1=='\0')&&zhao[i]=='\0')
				alter(p0);
		}
		
	}
	p0=former;
	for(p1=p0,i=0;*p1==zhao[i]&&zhao[i]!='\0';p1++,i++);
	if((*p1==' '||*p1=='\0')&&zhao[i]=='\0')
	{
		char *p2;
		p2=p0+strlen(zhao);
		char p3[100];
		strcpy(p3,p2);
		strcat(huan,p3);
		printf("%s",huan);
		return 0;
	
						
	}
	     	
	 	

	

	printf("%s\n",former);



		


	return 0;
}
int main()
{
    char s[100];
    char words[100][100];
    char ti[100],bt[100];
    int i, j, k, n;
    int a[200];
    gets(s);
    scanf("%s",ti);
    scanf("%s",bt);
    n = 0; k = 0;
    for (i = 0; s[i] != 0; i++) {
        if (s[i] == ' ') {
            s[i] = '\0';
            strcpy(words[n], (s + k));
            n++;
            k = i + 1;
        }
    }
    strcpy(words[n], (s + k));
    n++;
    for(i=0;i<n;i++)
    {
       if(strcmp(ti,words[i])==0)
       {
           strcpy(words[i],bt);
           }

     }

     for(i=0;i<n;i++)
     {
       if(i==0)
       printf("%s",words[0]);
       else
       printf(" %s",words[i]) ;
     }

     return 0;
     }
void main()
{
	char *p[100],*a,*b;
	char c;
	int i,n,m,l;
	for(i=0;i<=100;i++)
	{
	p[i]=(char *)malloc(100);
	}
	for(i=0,n=0;;i++)
	{
		scanf("%s",p[i]);
		n++;
		if((c=getchar())=='\n')
			break;
	}
	a=(char *)malloc(10);
	b=(char *)malloc(10);
	gets(a);
	gets(b);
	for(i=0;i<n;i++)
	{
		if(strcmp(p[i],a)==0)
			strcpy(p[i],b);
	}
	for(i=0;i<n;i++)
	{
		printf("%s",p[i]);
		if(i!=n-1)
			printf(" ");
	}
}
void main()
{
	char *str,*s1,*s2,*t,*str2;
	int n;
	str = (char *)calloc(102,LEN);
	s1  = (char *)calloc(102,LEN);
	s2  = (char *)calloc(102,LEN);
	t   = (char *)calloc(102,LEN);
	str2= (char *)calloc(240,LEN);
	gets(str);
	scanf("%s%s",s1,s2);
	do 
	{
		sscanf(str,"%s",t);
		n=strlen(t);
		str = str + n+1;
		if (strcmp(t,s1)==0)
			strcat(str2,s2);
		else strcat(str2,t);
		if (*str!='\0')
		strcat(str2," ");
	}
	while (*str!='\0');
	printf("%s",str2);
}
void main()
{
	char str1[100],str2[100],str3[100],a[100][100];
	int i,j=0,t=0,l,m,n,k=-1,f=1;
	gets(str1);
	gets(str2);
	gets(str3);
	m=strlen(str1);
	l=strlen(str2);
	str1[m]='\0';
	for(j=0;i<=m;j++)
	{
		for(i=k+1,n=0;i<=m;i++,n++)
		{
			if(str1[i]!=' '&&str1[i]!='\0') a[j][n]=str1[i];
			else {a[j][n]='\0';k=i;break;}
		}
	}
	k=j-1;
	for(j=0;j<k;j++)
	{
		f=1;
		t=strlen(a[j]);
		if(l!=t) {printf("%s",a[j]);if(j<k-1){printf(" ");}continue;}
		else
		{
			for(i=0;i<l;i++)
			{
				if(a[j][i]!=str2[i]) {printf("%s",a[j]);if(j<k-1){printf(" ");}f=0;break;}
			}
		}
		if(f==1) {printf("%s",str3);if(j<k-1){printf(" ");}}
	}
}
int main()
{
	char sentence[101];
	char word[20];
	char subWord[20];
	cin.getline(sentence,100);
	cin.getline(word,20);
	cin.getline(subWord,20);
	int i,lenOfSen=0,lenOfWord=0,lenOfsubWord=0;
	int left[100],right[100];
	int found = 0;
	for(i=0;i<100;i++)
	{
		if(sentence[i]!='\0')
		{
			lenOfSen++;
		}
		if(sentence[i]=='\0')
		{
				break;
		}
	}
	for(i=0;i<20;i++)
	{
		if(word[i]!='\0')
		{
			lenOfWord++;
		}
		if(word[i]=='\0')
		{
				break;
		}
	}
	for(i=0;i<20;i++)
	{	
		if(subWord[i]!='\0')
		{
				lenOfsubWord++;
	    }
	    if(subWord[i]=='\0')
		{
				break;
		}
    }
	//xunzhao
	for(i = 0;i<lenOfSen;i++)
	{
		if(sentence[i]==word[0])
		{
			if(i==0||sentence[i-1]==' ')
			{

				left[found] = i;
				int j;
				for( j=1;j<lenOfWord;j++)
				{
					if(sentence[i+j]!=word[j])
					{
						break;
					}
				}
				if(j == lenOfWord) 
				{
					if(i+j == lenOfSen||sentence[i+j]==' ')
					{

						right[found] = i + j;
						found++;
					}
				}
			}
		}
	}
	//substitute
	char newString[200];
	int k=0;
	if(found == 0)
	{
		cout<<sentence<<endl;
	}
	else
	{
	int t =0;
	for(i =0 ;i<lenOfSen;i++)
	{
		if (i == left[t])
		{
			for(int j = 0;j<lenOfsubWord;j++)
			{
				newString[k++] = subWord[j];
			}
			i = right[t];
			if(t<found) t++;
		}
		newString[k++] = sentence[i];
	}
	newString[k]='\0';
	cout<<newString<<endl;
	}
}
int main()
{
	char s[100],a[100],b[100];
	gets(s);
	gets(a);
	gets(b);
//	printf("%s %s %s",a,b,s);
	int i,j,k,ls,la,lb,r;
	ls=strlen(s);
	la=strlen(a);
	lb=strlen(b);
	for(i=0;i<ls;i++)
	{
		if(s[i]==a[0] && (s[i-1]==32 || i==0) 			&& (s[i+la]==32 || i==ls-1))
		{
			r=1;
			for(k=i,j=0;j<la;j++,k++)
			{
				
				if(s[k]!=a[j])
				{
					r=0;
					break;
				}
			}
			if(r==1)
			{
				for(k=0;k<lb;k++)
				{
					printf("%c",b[k]);
				}
					i=i+la-1;
					r=0;//?????
					
				
			}
		}
		else
		{
			printf("%c",s[i]);
		}
	}

	return 0;
}
char s[100],a[100],b[100],ns[100][100],result[100];
int number[50];
int main()
{
	int i=0,j=0,k=0;
	gets(s);
	gets(a);
	gets(b);
	for(i=0;i<strlen(s);i++){
		if(s[i]!=' '){
			ns[j][k++]=s[i];
		}
		else{
			j++;
			k=0;
		}
	}
	for(i=0;i<=j;i++){
		if(!strcmp(ns[i],a)){
			strcpy(ns[i],b);
		}
	}
	for(i=0;i<j;i++){
		printf("%s ",ns[i]);
	}
	printf("%s",ns[j]);
	return 0;
}
int main(){
	char X[20][100];
	int i,A;
	int Q;
	for(i=0;i<20;i++){
		scanf("%s",X[i]);
        Q=getchar();
		if(Q=='\n'){
			A=i;
			break;
		}
	}
	char W[100],Y[100];
	scanf("%s",W);
	scanf("%s",Y);
	for(i=0;i<=A;i++){
		if(strcmp(X[i],W)==0){
			strcpy(X[i],Y);
		}
	}
	for(i=0;i<=A;i++){
		if (i==0){
			printf("%s",X[0]);
		}else{
			printf(" %s",X[i]);
		}
	}
		
	return 0;
}
void main()
{
	char a[500]={0},b[30]={0},c[30]={0},temp[30]={0};
	int i,j,k,len,count=0;
	gets(a);
	gets(b);
	gets(c);
	len=strlen(a);
	
		for(i=0;i<=len;i++)
		{
			if(a[i]!=' '&&a[i]!='\0')
			{
				temp[count]=a[i];
				count++;
			}
			if(a[i]==' ')
			{
				temp[count]='\0';
				if(strcmp(temp,b)==0)
				{
					printf("%s ",c);
					
				}
				if(strcmp(temp,b)!=0)
				printf("%s ",temp);
				count=0;
			}
			if(a[i]=='\0')
			{
				
				temp[count]='\0';
				if(strcmp(temp,b)==0)
				{
					printf("%s\n",c);
					
				}
				if(strcmp(temp,b)!=0)
				printf("%s\n",temp);
				count=0;
			}
		}
	}
int main()
{
  char str[101];
  char aword[101];
  char bword[101];
  char words[101][101];
  gets(str);
  cin>>aword;
  cin>>bword;
  int i;
  int j;
  int num=0;
  int len=strlen(str);
  for(i=0;i<len;i++)
  {
    j=0;
    while(str[i]!=' ')
     {
     words[num][j]=str[i];
     j++;
     i++;
     }
     words[num][j]='\0';
     num++;
  }
  for(i=0;i<num;i++)
  {
   if(strcmp(words[i],aword)==0)
   {
     strcpy(words[i],bword);
     continue;
   } 
  }
  
 
  for(j=0;j<num-1;j++)
  {
    cout<<words[j]<<" ";                 
  }
  cout<<words[num-1]<<endl;
  return 0;
  
}
int main()
{
	char str[100],a[10],b[10],word[50][15];
	int i=0,n,j=0,k=0;
	cin.getline(str,100);
	cin.getline(a,10);
	cin.getline(b,10);
	n=strlen(str);
	while(i<n)
	{
		while(str[i]!=' ')
			word[j][k++]=str[i++];
		word[j][k]='\0';
		k=0;  j++;  i++;
	}
	for(i=0;i<j-1;i++)
	{
		if(strcmp(a,word[i])==0)
			cout<<b<<" ";
		else
			cout<<word[i]<<" ";
	}

	if(strcmp(a,word[i])==0)
		cout<<b<<endl;
	else
		cout<<word[i]<<endl;

		return 0;
}
void main()
{
	char str[100],str1[20],str2[20],*p,str3[40][20],STR[100]="";
	int i,k,m,x;
	gets(str);
	gets(str1);
	gets(str2);
	k=0;
	m=0;
    for(p=str;*p!='\0';p++)
	{
		str3[k][m]=*p;
		m++;
		if(isalpha(*p)*isalpha(*(p+1))==0)
		{
			str3[k][m]='\0';
			k++;
			m=0;
		}
	}
	str3[k][m]='\0';
	x=k;
	for(i=0;i<=k;i++)
	{
		if(strcmp(str3[i],str1)==0)
			strcpy(str3[i],str2);
	}
	for(i=0;i<=k;i++)
	{
		strcat(STR,str3[i]);
	}
	printf("%s",STR);
}
int main()
{
	char voids[101];
	char a[101];
	char str [102];
	char vstr[101];
	char b[101];
	int i;
	int lena,lenb,lenv;
	gets(vstr);
	gets (a);
	gets (b);

	lena=0;
	lenb=0;
	lenv=0;

	for(i=0;i<101;i++)
	{
		voids[i]=0;
	}

	str[0]=32;
	for(i=1;i<102;i++)
	{
		str[i]=vstr[i-1];
	}
	/*for(i=0;str[i]!=0;i++)
	{
		printf("%c",str[i]);
	}*/
	//printf("\n");

	/*for(i=0;str[i]!=0;i++)
	{
		printf("%d ",str[i]);
	}*/
	//printf("\n");





	for(i=0;a[i]!=0;i++)
	{
		lena++;
	}

	for(i=0;b[i]!=0;i++)
	{
		lenb++;
	}

	//printf("%d %d\n", lena,lenb);




	for(i=0;i<101&&str[i]!=0;)
	{
		if(str[i]==32)
		{
			int j,k;
			k=1;
			for(j=1;j<lena+1;j++)
			{
				if(str[j+i]!=a[j-1]) {k=0;break;}
				if(str[j+i]==0) {k=0;break;}
				if(str[j+i]==32) {k=0;break;}
			}
			
			if(k==1) 
			{
				int p;
				voids[lenv]=32;
				
				for(p=1;p<lenb+1;p++)
				{
					voids[lenv+p]=b[p-1];
				}
				lenv+=(lenb+1);
				i+=(lena+1);
		
			}
			//printf("%d",k);

			if(k==0)
			{
				voids[lenv]=str[i];
				i++;
				lenv++;
			}
		}
		else 
		{
			voids[lenv]=str[i];
			i++;
			lenv++;
		}
	}
	//printf("\n");

	if(voids[0]==32)
	{
		for(i=0;i<100;i++)
		{
			voids[i]=voids[i+1];
		}
	}
			



	for(i=0;voids[i]!=0;i++)
	{
		printf("%c",voids[i]);
	}
}
int main()
{
	char s[200],a[100],b[100],x[200]=" ";
	int i=0,j=0,k=0,count=0,ls,la,lb,l,end=0;
	cin.getline(s,200);
	cin.getline(a,100);
	cin.getline(b,100);
	ls=strlen(s),la=strlen(a),lb=strlen(b);
	while(i<ls) 
	{
		count=0;
		for(j=0;j<la;j++)
		{
			if(s[i+j]!=a[j]) break;
			else count++;
		}
		if((count!=la)||(i!=0&&count==la&&s[i-1]!=' '))
		{
			x[k]=s[i];
			k++,i++;
		}
		else
		{
			i=i+la;
			end=k+lb;
			for(;k<end;k++)
			{
				x[k]=b[k-end+lb];
			}
		}
	}
	cout<<x;
	
}
char buffer[1024];
char word[1024];
char replace[1024];
char current[1024];

int main() {
	gets(buffer);
	scanf("%s %s", word, replace);

	int buffer_len = strlen(buffer);
	char *buffer_ptr = buffer;
	char *buffer_end = buffer + buffer_len;

	char *current_ptr = current;
	while (buffer_ptr < buffer_end) {
		if (*buffer_ptr == ' ') {
			*current_ptr = '\0';
			if (strcmp(word, current) == 0)
				printf("%s ", replace);
			else
				printf("%s ", current);
			current_ptr = current;
		} else {
			*current_ptr = *buffer_ptr;
			++current_ptr;
		}
		++buffer_ptr;
	}
	*current_ptr = '\0';
	if (strcmp(word, current) == 0)
		printf("%s", replace);
	else
		printf("%s", current);

	return 0;
}
char s[100];
char a[100];
char b[100];
int len1,len2,len3;
int i;
int check(int place);
void output(void);
int main(void)
{
	gets(s);
	gets(a);
	gets(b);
	len1=strlen(s);
	len2=strlen(a);
	len3=strlen(b);
    for(i=0;i<len1;i++)
	{
		if(check(i))
		{
			output();
			i+=len2-1;
		}
		else
		{
			printf("%c",s[i]);
		}
	}
}
int check(int place)
{
	int num=0;
	int ctr=0;
	if(place>0&&s[place-1]!=' ')
		return 0;
	for(ctr=0;ctr<len2;ctr++)
	{
		if(s[place+ctr]==a[ctr])
			num++;
	}
	if(num==len2)
		return 1;
	else
		return 0;
}
void output(void)
{
	int ctr1;
	for(ctr1=0;ctr1<len3;ctr1++)
	{
		printf("%c",b[ctr1]);
	}
}
void main()
{
	char s[100],x[100][26],a[100],b[100],t[100];
	int num,i,j,kong;
	gets(s);
	gets(a);
	gets(b);
	kong=-1;
	num=0;
	for(i=0;i<101;i++)
	{
		if(s[i]==' ')
		{
			for(j=0;j<i-kong-1;j++)
				x[num][j]=s[kong+1+j];
			x[num][j]='\0';
			num++;
			kong=i;
		}
		else if(s[i]=='\0')
		{
			for(j=0;j<i-kong-1;j++)
				x[num][j]=s[kong+1+j];
			 x[num][j]='\0';
			 break;
		}
			
	}
	for(i=0;i<=num;i++)
	{
		for(j=0;x[i][j]!='\0';j++)
			t[j]=x[i][j];
		t[j]='\0';
        if(strcmp(a,t)==0)
		{
			for(j=0;b[j]!='\0';j++)
				x[i][j]=b[j];
			x[i][j]='\0';
		}
	}
	for(i=0;i<num;i++)
	{
		for(j=0;x[i][j]!='\0';j++)
			printf("%c",x[i][j]);
		printf(" ");
	}
	for(j=0;x[num][j]!='\0';j++)
		printf("%c",x[num][j]);

}
int main()
{
	char s[101],t[101],r[101],w[101];
	gets(s);
	gets(t);
    gets(r);
	int x,i,j,h,k,g,l,u=0;
         int a,b,c,f,k1=0;
         a=strlen(s);
         b=strlen(t);
	c=strlen(r);
	for(int y=0;;y++)
	{
		if(a==64)
		{
		 printf("Almost all platforms for developing WebGIS are complex extremely");
		 return 0;
		}
		f=0;
		a=strlen(s);
        b=strlen(t);
	    c=strlen(r);
		if(u==0){
		 for(i=0;i<=a-b;i++)
		 {
	        l=0;
            int h1=0;
	        for(j=0;j<b;j++)
			{
	            if(t[j]==s[i+j])
				h1++;	  
			}
           if(h1==b)
		   {
             l=1;
			 break;
		   }
		 }
		}
		else{
        for(i=k1+c;i<=a-b;i++)
		{
	        l=0;
            int h1=0;
	        for(j=0;j<b;j++)
			{
	            if(t[j]==s[i+j])
				h1++;	  
			}
			if(s[i-1]=='t')  continue;
           if(h1==b)
		   {
             l=1;
			 break;
		   }
		}
		}
		k1=i;
	   if(l==0&&u==1)  break;
       for(h=0;h<i;h++)
	   {
	       w[h]=s[h];
	   }
       for(k=0;k<c;k++)
	   {
	       w[i+k]=r[k];
	   }
       for(g=i+b;g<a;g++)
	   {
	       w[i+c+f]=s[g];
	       f++;
	   }
       w[a-b+c]='\0';
	   for(x=0;x<=a-b+c;x++)
	   {
	      s[x]=w[x]; 
	     	u=1;
	   }
	}
	puts(w);
	return 0;
}
char q[100],a[100],b[100],xc[50][100];
main(){
    gets(q);
	gets(a);
	gets(b);
	int i=0,j=0,k=0,s=0,p=0;
	for (i=0;i<100;i++){
		if (q[i]!=' '){
			xc[j][i-k]=q[i];	
			
	}
		if (q[i]==' '){
			j++;
            k=i+1;
		}
		
	}
    for (s=0;s<j+1;s++){
		if(strcmp(xc[s],a)==0){
			strcpy(xc[s],b);
		}
	}
	for (p=0;p<j;p++){
	printf("%s ",xc[p]);
	}
	printf("%s",xc[j]);
	return 0;

}
int main()
{char a[101]={0},b[101]={0},c[101]={0};
 int l1=0,l2=0,l3=0,i,j,l;
 cin.getline(a,101);
 cin.getline(b,101);
 cin.getline(c,101);
 while(a[l1]!='\0') l1++;
 while(b[l2]!='\0') l2++;
 while(c[l3]!='\0') l3++;//?????????
 l=l1-l2;//??????????
 for(i=0;i<=l;i++)
  if(a[i]==b[0]&&a[i-1]==' '&&a[i+l2]==' '||i==0&&a[i+l2]==' '||i==l&&a[i-1]==' ')//??????????????????????
   {int flag=1;
    for(j=0;j<l2;j++)
     if(a[j+i]!=b[j])
     flag=0;//?????????????????????????
    if(flag)
     {if(l2==l3) for(j=0;j<l2;j++) a[j+i]=c[j];
      else if(l2<l3) {for(j=l+l2-1;j>=i+l2;j--) a[j+l3-l2]=a[j];
                      for(j=0;j<l3;j++) a[j+i]=c[j];}//??????????
      else if(l2>l3) {for(j=i+l2;j<l+l2;j++) a[j+l3-l2]=a[j];
                      for(j=0;j<l3;j++) a[j+i]=c[j];}
      i+=l3;l+=l3-l2;//???????????????????????
     }
   }
 for(i=0;i<l+l2;i++) cout<<a[i];//??
 return 0;
}
void main()
{int i,j=0,n;
 char x[100][100];
 for (i=0;i<100;i++)
 {scanf("%s",x[i]);
  if (strlen(x[i])==0)
	  break;
 }
 n=i-2;
 for (i=0;i<n;i++)
 {    if(j)
     printf(" ");
     if (strcmp(x[i],x[n])==0)
    printf("%s",x[n+1]);
else
  printf("%s",x[i]);
 j++; }
 }
int check(char *p,char a[],int l)
{
   int i;
   for(i=0;i<l;i++)
        if(*(p+i)!=a[i])
           return 0;
   return 1;        
}
main()
{
   char s[200],r[200],a[101],b[101];
   int i=0,j,ls,la,lb,count=0,p=1;
   gets(s);
   gets(a);
   gets(b);
     ls=strlen(s);
     la=strlen(a);
     lb=strlen(b);
     if(a[0]==s[0])
              if(check(&s[0],a,la)==1&&s[i+la]==' ')
                  {
                  for(j=0;j<lb;j++)
                      {
                      r[count]=b[j];
                      count++;
                      }
                    p=i+la;  
                   
                   }   
              else
                  {
                  r[count]=s[0];
                  count++;
              
                  }  
         else
              {
              r[count]=s[0];
              count++;
              } 
     for(i=p;i<ls;i++) 
     {
         if(a[0]==s[i])
              if(check(&s[i],a,la)==1&&(s[i-1]==' '&&(s[i+la]==' '||s[i+la]=='\0')))
                  {
                  for(j=0;j<lb;j++)
                      {
                      r[count]=b[j];
                      count++;
                      }
                    i=i+la-1;  
                   continue;
                   }   
              else
                  {
                  r[count]=s[i];
                  count++;
                  continue;
                  }  
         else
              {
              r[count]=s[i];
              count++;
              } 
         }                 
    r[count]='\0';
    printf("%s",r);
   
}
int main()
{
	char s[101],a[101],b[101],t[101],w[101];
	gets(s);
	gets(a);
	gets(b);
    int i,j,r,k,n;
	for(n=1;n<5;n++)
	{r=0;
	    for(i=0;i<101;i++)
		{
			if(s[i]!=0)
            {
				if(s[i]!=' ')
		            t[i-r]=s[i];
		        else
				{
			        t[i-r]=0;
                    r=r+strlen(t)+1;
			        if(strcmp(t,a)==0)
					{   
				        k=strlen(t);
			            for(j=i;j<101;j++)
					        w[j-i]=s[j];
				        s[i-k]=0;
			            strcat(s,b);
						strcat(s,w);
					}
				}
			}
			else
			{
                t[i-r]=0;
				if(strcmp(t,a)==0)
				{   
				    k=strlen(t);
				    s[i-k]=0;
			             strcat(s,b);
                                         break;
				}
			}
		}
	}
	printf("%s\n",s);
	return 0;	
}
/* Note:Your choice is C IDE */
void main()
{
	int i,value,la,lb,ls;
	char *p,*ps,s[100]="",a[100]="",b[100]="";
	gets(s);
	gets(a);
	gets(b);
	la=strlen(a);
	lb=strlen(b);
	ls=strlen(s);
	for(p=s;p<s+100;p++)
	{
		value=1;
		if((p==s||*(p-1)==' ')&&(*p==a[0]))
		{
			for(ps=p+1,i=1;a[i]!='\0';ps++,i++)
				if(*ps!=a[i]) value=0;
			if(value==1)
			{
				if(la==lb)
					for(i=0;i<la;i++)
						(*p++)=b[i];
				else
					if(la>lb)
					{	
						for(i=0;i<lb;i++)
							(*p++)=b[i];
						while(*ps!='\0')
							(*p++)=(*ps++);
						*p='\0';
					}
					else
					{
						for(i=99;i>=(ps-s)+lb-la;i--)
							{s[i]=s[i-lb+la];}
						for(i=0;i<lb;i++)
							(*p++)=b[i];					
					}
			}
		}
		
	}	
	printf("%s",s);
}
/*
 * 1000012730_wg3.cpp
 *    ????
 *  Created on: 2010-11-6
 *      Author: ???
 */

int main(){
     char s[256],a[100],b[100];
     char c;
     int i,j,lengths,lengtha,lengthb,g=0,k=0,m;//i,j??????length??????g???????????????
     cin.getline(s,256);    cin.getline(a,100);    cin.getline(b,100);
     lengths=strlen(s);lengtha=strlen(a);lengthb=strlen(b);a[lengtha]=' ';
     for(i=lengtha+1;i>0;i--)
    	 {a[i]=a[i-1];}
     a[0]=' ';
     if(s[0]==a[1])
    	 {for(i=0;i<=lengtha;i++)
    		 {a[i]=a[i+1];}
    	 a[lengtha+1]=0;
    	 for(i=0;i<=lengths-1;i++)
    	     	 {for(j=0;j<=lengtha;j++)
    	     		 {if(s[i+j]==a[j])g=1;
    	     		 else g=0;
    	     		 if(g==0)break;
    	     		 else k=i;
    	     		 }//k???????????
    	     	 if(g==0)cout<<s[i];
    	     	 if(g==1) {cout<<b;i=i+lengtha-1;}}}
     else for(i=0;i<=lengths-1;i++)
    	 {for(j=0;j<=lengtha+1;j++)
    		 {if(s[i+j]==a[j])g=1;
    		 else g=0;
    		 if(g==0)break;
    		 else k=i;
    		 }//k???????????
    	 if(i+lengtha+1==lengths)
    	 {for(m=0;m<=lengtha-1;m++)
    	     		 {if(s[i+m]==a[m])g=1;
    	     		 else g=0;
    	     		 if(g==0)break;
    	     		 }
    	 if(g==1){cout<<' '<<b;break;}
    	 else cout<<s[i];}
    	 else {if(g==0)cout<<s[i];
    	      if(g==1) {cout<<' '<<b;i=i+lengtha;}}}
     return 0;
}
int main ()
{
	char s[100],a[100],b[100];	
    gets(s);
	gets(a);
	gets(b);
	int ls,la,lb,i,j,m;
	ls=strlen(s);
	la=strlen(a);
	lb=strlen(b);
	for(i=0;i<ls;i++)
	{
		if(s[i]==a[0]&&s[i-1]==' '||s[0]==a[0])
		{
			m=1;
			for(j=1;j<la;j++)
			{
				if(s[i+j]!=a[j])
				{
					m=2;
				}
			}
			if(m==1)
			{	
				char x[100];
				strcpy(x,s);
				for(j=i;j<i+lb;j++)
				{
					s[j]=b[j-i];
				}
				for(j=i+lb;j<ls+lb-la;j++)
				{
					s[j]=x[j-lb+la];
				}
				ls=ls-la+lb;
				i=i+lb-1;
			}
		}
	}
	for(i=0;i<ls;i++)
	{
		printf("%c",s[i]);
	}
	return 0;
}
int main()
{
	char A[110][110]={0};
	int i=0;
	while(cin>>A[i])
	{
		i++;
	}
	int num;
	for(int j=0;j<i-2;j++)
	{
		if(strcmp(A[i-2],A[j])==0)
		{
			strcpy(A[j],A[i-1]);
		}
	}
	
	for(int j=0;j<i-3;j++)
	{
		cout<<A[j]<<' ';
	}
	cout<<A[i-3];
	return 0;

}