semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
    int i,j,k,n,p,m,c,a[101];
    char str[15],substr[4],x[20];
    while (scanf("%s %s",str,substr)!=EOF)
    {
        c=0;
        n=strlen(str);
        for (i=0;i<n;i++)
            if (str[c]<str[i])
            {
                c=i;
            }
        for (j=0;j<=c;j++) x[j]=str[j];
        for (j=c+1;j<=c+3;j++) x[j]=substr[j-c-1];
        if (c<n-1)  for (j=c+4;j<n+3;j++) x[j]=str[j-3];
        for (i=0;i<n+3;i++) putchar(x[i]);
        printf("\n");
    }
}
void main()
{
	int i,j,p,n;
	j=0;
	char a[14],b[4];	while(scanf("%s%s",a,b)!=EOF)
	{
	n=strlen(a);
	for(i=0;i<n;i++)
		if(a[i]>a[j])
			j=i;
		p=j;
		for(i=n-1;i>j;i--)
			a[i+3]=a[i];
		a[p+3]=b[2];
		a[p+2]=b[1];
		a[p+1]=b[0];
		for(i=0;i<n+3;i++)
			printf("%c",a[i]);
		printf("\n");}
	
			
}
int findmax(char a[15])
{
  int maxnum=0,max;max=a[0];
  int i,len;len=strlen(a);
  int comp;comp=a[0];
  for(i=0;i<len-1;i++)
  {if(a[i+1]>max){maxnum=i+1;max=a[i+1];}}
  return maxnum;
}

void main()
{
  
  int lstr,mnum;
  int i;
  char str[15]={0},substr[5]={0};
    while (scanf("%s %s",str,substr)!=EOF)
	{
	  
      mnum=findmax(str);
	  lstr=strlen(str);
	  for(i=lstr-1;i>mnum;i--)
	  {
	     str[i+3]=str[i];
	  }
	  for(i=0;i<3;i++)
		  str[mnum+i+1]=substr[i];
	  printf("%s\n",str);
      for(i=0;i<15;i++)str[i]=0;
	  for(i=0;i<3;i++)substr[i]=0;
	}

}
void main()
{
	char str[1000]={'\0'},substr[3],str2[1000]={'\0'};
	int i,l=0,max=0;
	while((scanf("%s %s",str,substr))!=EOF)
	{
		l=strlen(str);
		for(i=0;i<l;i++)
		{
			if(str[i]>str[max])
			{
				max=i;
			}
	
		}
		
		for(i=max+1;i<l;i++)
		{
			str2[i-1-max]=str[i];
		}
		str[max+1]=substr[0];
		str[max+2]=substr[1];
		str[max+3]=substr[2];
		str[max+4]='\0';
		strcat(str,str2);
		printf("%s\n",str);
		i=0;
		while(str2[i]!='\0')
		{
			str2[i]='\0';
			i++;
		}
	
	}
			

}
int main()
{
	int i,j,k;
	char str[500],sub[4],*st=str,*su=sub,c;
	while(scanf("%s%s",str,sub))
	{
		k=strlen(str);
		if(k==0)break;
		c=*st;
		j=0;
		for(i=0;i<k;i++)
			if(*(st+i)>c)
			{
				c=*(st+i);
				j=i;
			}
		for(i=k;i>j;i--)
			*(st+i+3)=*(st+i);
		for(i=1;i<4;i++)
			*(st+j+i)=*(su+i-1);
		printf("%s\n",st);
		*st=0;
	}
	return 0;
}
void main()
{
	
	char str[20],substr[10],max;
	int i,n,j,max_index;
	while(scanf("%s %s",str,substr)!=EOF)
	{
	    n=strlen(str);
		char *p;
		p=&str[0];
		max=*p;
		for(i=0;i<n;i++)
		{
			if(*(p+i)>max)
			{
				max=*(p+i);
				max_index=i;
			}
		}
		for(i=0;i<=max_index;i++)
			printf("%c",str[i]);
		printf("%s",substr);
		for(i=max_index+1;i<n;i++)
			printf("%c",str[i]);
		printf("\n");
	}
}
void main() 
{
    char str[14],substr[4];
    int i,n,k=0;
    while(scanf("%s%s",str,substr)!=EOF)
    {n=strlen(str);
    for(i=0;i<n;i++)
    if(str[i]>str[k]) k=i;
    for(i=n;i>k;i--)
    str[i+3]=str[i]; 
    for(i=1;i<4;i++)
    str[k+i]=substr[i-1];
    puts(str);}
}
int main()
{
	char str[15];
	char substr[4];
	int i,maxi,L;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		maxi = 0;
		i=1;
		while(str[i])
		{
			if(str[i]>str[maxi])
				maxi = i;
			i++;
		}
		L =strlen(str);
		i = L;
		while(i!=maxi)
		{
			str[i+3] = str[i];
			i--;
		}
		i = 0;
		while(i<3)
		{
			str[maxi+1+i] = substr[i];
			i++;
		}
		printf("%s\n",str);
	}
	return 0;
}
int number(char a[])
{
	int i,m=0;
	for(i=0;a[i]!=0;i++) m++;
	return m;
}
void change(char a[],int m,char b[])
{
	int i,j=0;
	char c[13];
	for(i=m+1;a[i]!=0;i++)
	{
		c[j]=a[i];
		j++;
		a[i]=0;
	}
	strcat(a,b);
	strcat(a,c);
	printf("%s\n",a);
}
void in(char a[],char b[])
{
	int i,j,m;
	for(i=0;a[i]!=0;i++)
	{
		m=0;
		for(j=0;a[j]!=0;j++) if(a[i]>=a[j]) m++;
		if(m==number(a))
	    {
			change(a,i,b);
			break;
		}
	}
}
void remove(char a[])
{
	int i;
	for(i=0;a[i]!=0;i++) a[i]=0;
}
int main()
{
	char str[15]={0},substr[4]={0};
	while(scanf("%s%s",str,substr)!=EOF)
	{
		in(str,substr);
		remove(str);
		remove(substr);
	}
}
void insert(char s1[],char s2[])
{
	int i,k=0,j,l;
	char s[13];
	l=strlen(s1);
	for(i=1;i<l;i++)
		if(s1[i]>s1[k])
			k=i;
	for(i=0;i<=k;i++)
		s[i]=s1[i];
	for(j=0;j<3;j++)
		s[i+j]=s2[j];
	for(j=i;j<l;j++)
		s[j+3]=s1[j];
	s[j+3]='\0';
	printf("%s\n",s);
}
void main()
{
	char s1[11],s2[4];
	while(scanf("%s%s",s1,s2)!=EOF)
		insert(s1,s2);
}
void main()
{
	char str[20],substr[3],s[20];
	int i,j=0,k,m;
	while(scanf("%s %s",str,substr)==2)
	{
		m=strlen(str);
		for(i=0;i<m;i++)
		{
			if(str[i]>str[j])
				j=i;
		}
		for(i=m-1;i>j;i--)
			str[i+3]=str[i];
		for(i=j+1,k=0;i<j+4;i++,k++)
			str[i]=substr[k];
		str[m+3]='\0';
		printf("%s\n",str);
	}
}
int findmax(char str[], int len)
{
	char c=str[0];
	int p=0,i;
	for(i=0;i<len;i++)
		if(str[i]>c)
		{
			p=i; c=str[i];
		}
	return p;
}

void main()
{
	char c,str[11], substr[4];
	int p,l;

	while(scanf("%s %s",str,substr)!=EOF)
	{

	p=findmax(str,l=strlen(str));
	p++;
	c=str[p];
	str[p]=0;

	printf("%s%s",str,substr);

	str[p]=c;
	if(p<=l) printf("%s\n",&str[p]);
	else printf("\n");
	}
}
void main()
{
	char *str, *substr,*p,*q,*max,*string;
	int i,j,l1,l2;
	str=(char *)calloc(15,sizeof(char));
	substr=(char *)calloc(5,sizeof(char));
	while(scanf("%s%s",str,substr)!=EOF)
	{
	l1=strlen(str);
	l2=strlen(substr);
	max=str;
	for(p=str;p-str<l1;p++)
	{
		if(*p>*max)
			max=p;
	}
	string=(char *)calloc(15,sizeof(char));
	for(p=str,i=0;p<=max;p++,i++)
		*(string+i)=*p;
	for(p=substr;p-substr<l2;p++,i++)
		*(string+i)=*p;
	for(p=max+1;p-str<l1;p++,i++)
		*(string+i)=*p;
	puts(string);
	}
}
int main(void)
{
	int i=0,j=0,n,m;
	char a[10000][20],b[10000][14],*p,*max;
	while((scanf("%s %s",&a[i],&b[i]))!=EOF)
	{
		n=strlen(a[i]);
		p=&b[i][2];
		max=a;
		for(j=0;j<n-1;j++)
		{
			if(*max<a[i][j+1]) max=&a[i][j+1];
		}
		/*printf("%d\n%c\n%c\n",n,*(max+1),*p);*/
		for(j=1;j<10;j++)
		{
			*(p+j)=*(max+j);
			*(max+j)='\0';
		}
		printf("%s\n",strcat(a[i],b[i]));
	}
}
main()
{
	char a[11],b[4],c[14];
	int i,k;
	char p;
	for (;;)
	{
		for (i=0;i<11;i++)
			a[i]=0;
		for (i=0;i<4;i++)
			b[i]=0;
		for (i=0;i<14;i++)
			c[i]='\0';
		scanf("%s",a);
		if (a[0]=='\0')
			break;
		scanf("%s",b);
		p=a[0];
		k=0;
		for (i=0;a[i]!='\0';i++)
		{
			if (p<a[i])
			{
				p=a[i];
				k=i+1;
			}
		}
		for (i=0;i<k;i++)
			c[i]=a[i];
		for (i=0;i<3;i++)
			c[k+i]=b[i];
		for (i=k;a[i]!='\0';i++)
			c[i+3]=a[i];
		printf("%s\n",c);
	}
}
int f(char a[])
{
	int i,l,l0,b=0;
	l=strlen(a);
	for(i=0;i<l;i++)
	{
		if(b<a[i])
		{
			b=a[i];
			l0=i;
		}
	}
	return(l0);
}
void main()
{
	char s1[11],s2[4],s[14];
	int j,i,l,l0;
	while (scanf("%s%s",s1,s2)!=EOF)
	{
		l=strlen(s1);
		l0=f(s1);
		for(i=0;i<=l0;i++)
			s[i]=s1[i];
		for(j=0,i=l0+1;j<3;j++,i++)
			s[i]=s2[j];
		for(j=l0+1,i=l0+4;j<=l;j++,i++)
			s[i]=s1[j];
		printf("%s\n",s);
	}
}
void str(char a[10],char b[3])/*???????*/
{
	int i,l,c=a[0],k;
	l=strlen(a);
	for(i=1;i<l;i++)
 		if(c<a[i])
		{
			c=a[i];
			k=i;
		}
 	for(i=0;i<k+1;i++) printf("%c",a[i]);
	for(i=0;i<3;i++) printf("%c",b[i]);
	for(i=k+1;i<l;i++) printf("%c",a[i]);
	printf("\n");
}
void main()
{
	char a[10],b[3];
	while(scanf("%s%s",a,b)!=EOF)
		str(a,b);
}
main()
{
    int l,i,k,j;
	char s1[11],s2[4],s3[15];
	while(scanf("%s %s",s1,s2)!=EOF)
    {
	    l=strlen(s1);
		k=0;
	    for(j=1;j<l;j++)
			if(s1[k]<s1[j])  k=j;
		for(i=0;i<=k;i++)
		  s3[i]=s1[i];
		for(i=1;i<4;i++)
			s3[k+i]=s2[i-1];
		for(i=0;i<=l-k;i++)
			s3[k+4+i]=s1[k+i+1];
		printf("%s\n",s3);
	}
}
void main()
{
	int l1,max,l2,i,l;
	char str[100],substr[100];
	while (scanf("%s%s",str,substr)!=EOF)
	{
		l1=strlen(str);
		max=0;
		for (i=0;i<l1;i++)
			if (str[i]>max)
			{max=str[i];l=i;}
		l2=strlen(substr);
		for (i=l1-1;i>l;i--)
			str[i+l2]=str[i];
		for (i=0;i<l2;i++)
			str[l+i+1]=substr[i];
		for (i=0;i<l1+l2;i++)
			printf("%c",str[i]);
		printf("\n");		
	}
}
void main()
{
	char a[100],b[100],c,d[100];
	int i,j=0,k;
	while(scanf("%s%s",a,b)!=EOF)
	{
		k=strlen(a);
		j=0;
		for(i=1,c=a[0];i<k;i++)
			if(c<a[i]){
				c=a[i];
				j=i;
			}
		for(i=0;i<=j;i++)
			d[i]=a[i];
		for(i=j+1;i<k;i++)
			d[i+3]=a[i];
		for(i=0;i<3;i++,j++)
			d[j+1]=b[i];
		d[k+3]=0;
		printf("%s\n",d);
	}
}
int main(int argc, char *argv[])
{
  char str[11],substr[4];
  int m,i,e;
  while(scanf("%s%s",str,substr)!=EOF)
  {
    m=strlen(str);
    e=0;
    for(i=1;i<m;i++)
    {
       if(str[i]>str[e]) e=i;
    }   
  for(i=0;i<=e;i++) printf("%c",str[i]);
  for(i=0;i<3;i++) printf("%c",substr[i]);
  for(i=e+1;i<m-1;i++)
  printf("%c",str[i]);
  printf("%c\n",str[m-1]);
}
  
  return 0;
}
void main()
{   char a[10],b[3],c,max;
int j,t,l;
	
	while(scanf("%s",a)!=EOF)
{
	scanf("%s",b);
	l=strlen(a);
	max=a[0];
	for(j=0;j<=l-1;j++)
	{ 
	if((int)a[j]>(int)max)
	{max=a[j];
	t=j;}
	}
	for(j=0;j<=t;j++)
		printf("%c",a[j]);
	printf("%s",b);
	for(j=t+1;j<=l-1;j++)
		printf("%c",a[j]);
	printf("\n");}
	while((c=getchar())!=EOF);
}
void main()
{
	char *str,*substr,*newstr;
	int i,j,p,q,a,b=0;
	str=(char *)malloc(11*sizeof(char));
	substr=(char *)malloc(4*sizeof(char));
	newstr=(char *)calloc(30,sizeof(char));
	while(scanf("%s %s",str,substr)!=EOF)
	{
	p=strlen(str);
	q=strlen(substr);
	a=*str;
	for(i=1;i<p;i++)
		if(*(str+i)>a)
		{
			a=*(str+i);
			b=i;
		}

	for(i=0;i<=b;i++)
		*(newstr+i)=*(str+i);
	for(i=b+1,j=0;j<q;i++,j++)
		*(newstr+i)=*(substr+j);
	for(i=b+q+1,j=b+1;j<p;i++,j++)
		*(newstr+i)=*(str+j);

	for(i=0;i<p+q;i++)
		printf("%c",*(newstr+i));
	printf("\n");
	}
}
void main()
{
	char a[11],b[4],c[16];
	int i,n,max,maxi;
	while (scanf("%s%s",a,b)!=EOF)
	{
		n=0;
		max=0;
		for(i=0;a[i]!='\0';i++)
			n++;
		for(i=0;i<=n-1;i++)
		{
			if(a[i]>max)
			{
				max=a[i];
				maxi=i;
			}
		}
		for(i=0;i<=maxi;i++)
			c[i]=a[i];
		for(i=maxi+1;i<=maxi+3;i++)
			c[i]=b[i-maxi-1];
		for(i=maxi+4;i<=n+2;i++)
			c[i]=a[i-3];
		c[n+3]='\0';
		printf("%s\n",c);
	}
}
int main()
{
int max,i,max_index;
char str1[20],str2[10],ans[20],t[20];
while(scanf("%s %s",str1,str2)!=EOF)
{
  max=0;
  for(i=0;str1[i];i++)
  {
   if(str1[i]>max)
   {
    max=str1[i];
    max_index=i;
  }
  }
   strcpy(ans,"");
   strncat(ans,str1,max_index+1);
   strcat(ans,str2);
   for(i=max_index+1;str1[i];i++)
   {
    t[i-max_index-1]=str1[i];
   }
   t[i-max_index-1] = '\0';
   strcat(ans,t);
  
  printf("%s\n",ans);
}
return 0;
}
int MAX(char str[],int len)
{
	int i,max,temp;
	max=0;
	for(i=1;i<len;i++)
	{if(str[max]<str[i])
		{
			temp=max;
			max=i;
			i=temp;
		}
	}
	return (max);
}
void main()
{
	char str[10],substr[3];
	int stop,len,i;
	for(;;)
	{
		stop=scanf("%s %s",str,substr);
		if(stop!=2) break;
		len=strlen(str);
		for(i=0;i<=MAX(str,len);i++)
		printf("%c",str[i]);
		printf("%s",substr);
		for(i=MAX(str,len)+1;i<len;i++)
			printf("%c",str[i]);
                printf("\n");
	}
}
void insert(char a[15])
{
	char m,c;
	int i,l=0,j,k;
    j=strlen(a);
	if(strlen(a)==0 || a[0]<33 || a[0]>126 ) return;
	m=0;
	for(i=0;i<j-4;i++)
		if(m<a[i])
		{
			m=a[i];l=i+1;
		}
		for(i=0;i<3;i++)
		{
			c=a[j-3+i];
			for(k=j-3+i;k>l+i;k--)
				a[k]=a[k-1];
			a[l+i]=c;
		}
		for(i=0;i<j-2;i++)
			printf("%c",a[i]);
		    printf("%c\n",a[j-2]);
}
void main()
{
	char b[50][15];
	int l=0,i;
	do
	{
		gets(b[l]);
		if(strlen(b[l])==0 || b[l][0]<33 || b[l][0]>126 ) break;
		l=l+1;
	}while(b[l-1][0]!='\0');
	for(i=0;i<l;i++)
		insert(b[i]);
}
int num(char st[]);
void conv1(char st[],int n);
void conv2(char st[],int n);
void result(char st1[],char st2[],char st3[]);
void main()
{
	char str[20],substr[4],str1[20],str3[20];
	while (scanf("%s%s",str,substr)!=EOF)
	{
		int n;
		n=num(str);/**/
		strcpy(str3,str);/**/
		conv1(str,n);/**/
		conv2(str3,n);/**/
		result(str,substr,str3);
	}
}
void conv1(char st[],int n)
{
	st[n]='\0';
}
void conv2(char st[],int n)
{
	int l,i;
	l=strlen(st);
	for(i=0;i<l-n;i++)
	{
		st[i]=st[i+n];
	}
	st[l-n]='\0';
}
int num(char st[])
{
	int i,l;
	char t;
	t=st[0];
	l=strlen(st);
	for(i=1;i<l;i++)
	{
		if(st[i]>t)
			t=st[i];
	}
	for(i=0;i<l;i++)
	{
		if(st[i]==t)
		{
			return (i+1);break;
		}
	}
}
void result(char st1[],char st2[],char st3[])
{
	 strcat(st1,st2);
	 strcat(st1,st3);
	 puts(st1);
}
void main()
{
	char str1[14]={"a"},str2[4]={"a"},str3[14]={"a"},str[14]={"a"};
	int i,n,k,p;
	char max;
	while(scanf("%s%s",str1,str2)!=EOF)
	{
		str3[0]='\0';
		str[0]='\0';
		p=0;
		n=strlen(str1);
		max=str1[0];
		for(i=0;i<n;i++)
		    if(str1[i]>max)
			{
				max=str1[i];
				k=i;
			}
		for(i=k+1;i<n;i++)
		{
			str3[p]=str1[i];
			p++;
		}
		str3[p]='\0';
		strncpy(str,str1,k+1);
		str[k+1]='\0';
		strcat(str,str2);
		strcat(str,str3);
		puts(str);
		printf("\n");
	}
}
int main()
{   int n,i,j;
    char str[10]={0},substr[3]={0},m=0;

	while(scanf("%s %s",str,substr)==2){m=0;n=0;
		
	for(i=0;i<10;i++){if(str[i]>m){m=str[i];n=i;}}

	
	for(i=0;i<=n;i++)printf("%c",str[i]);
	printf("%s",substr);
    for(i=n+1;i<strlen(str);i++)printf("%c",str[i]);printf("\n");
				

	
	
	}return 0;}
/* Note:Your choice is C IDE */
void main()
{
	char str[30],substr[4],max;
	int i,len,num;
	scanf("%s%s",str,substr);
	while(str[0]!='0')
	{
		len=strlen(str);
		for(i=0,max=str[0];i<len;i++)if(str[i]>max)max=str[i];
		for(i=0;i<len;i++)if(str[i]==max){
		num=i;
		break;
		}
		for(i=0;i<num+1;i++)printf("%c",str[i]);
		printf("%s",substr);
		for(i=num+1;i<len;i++)printf("%c",str[i]);
		printf("\n");
		for(i=0;i<len;i++)str[i]='0';
		for(i=0;i<3;i++)substr[i]='0';
		scanf("%s%s",str,substr);
	}
}
int main()
{int p,j,k,len,i;
char str[100][10]={'\0'},ch[100][3],sub[100][20],tol[100][30];
for(i=0;i<100;i++)
{	gets(tol[i]);
	len=strlen(tol[i]); 
	if(len==0) break;
	for(j=0;;j++)
		{str[i][j]=tol[i][j];
		if(str[i][j]==' ') {str[i][j]='\0';break;}}
	for(k=0;k<3;k++)
	   {ch[i][k]=tol[i][j+1];j++;}
	for(j=1,p=0;j<len;j++)
		{  if(str[i][p]<str[i][j]) p=j;
		}
		
	strncpy(sub[i],str[i],p+1);
	
	sub[i][p+1]=ch[i][0];sub[i][p+2]=ch[i][1];sub[i][p+3]=ch[i][2];
    for(j=0;j<=len-1-p;j++)
		sub[i][p+4+j]=str[i][p+j+1];
 }
printf("%s",sub[0]);
for(i=1;strlen(tol[i])!=0;i++)
	{ printf("\n%s",sub[i]); }
return 0;
}
void main()
{
    char str[1000][10],substr[1000][3],max,s[1000][100];
    int i=0,j,k,l,q,w,e;
    while(scanf("%s %s",str[i],substr[i])!=EOF)
    {
        max=str[i][0];
        for(j=1;j<=10;j++)
        {if(max<str[i][j])    max=str[i][j];}
        for(k=0;k<=10;k++)
        {
            if(str[i][k]==max)
            {
              for(l=0;l<=k;l++) {s[i][l]=str[i][l];}
              for(q=0;l<=k+strlen(substr[i]);l++,q++)  {s[i][l]=substr[i][q];}
              for(w=k+1;l<=strlen(substr[i])+strlen(str[i]);l++,w++)  {s[i][l]=str[i][w];}
              printf("%s\n",s[i]);
              break;
            }
        }
       i++;
    }
}
void main()
{
	char str[11],strsub[4],str2[14];
	int i,j,max,maxnum;
	while (scanf("%s %s",str,strsub)!=EOF)
	{
		max=0;
		for(j=0;;j++)
		{
			if(str[j]=='\0') break;
			if(str[j]>max) 
			{
				max=str[j];
				maxnum=j;
			}
		}
		for(i=0;i<=maxnum;i++) str2[i]=str[i];
		str2[maxnum+1]='\0';
		strcat(str2,strsub);
		for(i=maxnum+4;;i++) 
		{
			if(str[i-3]=='\0') break;
			str2[i]=str[i-3];
		}
		str2[i]='\0';
		puts(str2);
	}
}
/*#include<stdio.h>
void main()
{
	int n,i,j,k,max[100],c[100],m[100];
	char a[100][10],b[100][3];
	

	
		scanf("%s ",a[i]);
		for(j=0;j<3;j++)
			scanf("%c",&b[i][j]);
	}

	for(i=0;i<n;i++)
		for(j=0;j<10;j++)
		{
			if(a[i][j]!=' '&&a[i][j+1]==' ')break;
			c[i]=j;
		}

		for(i=0;i<n;i++)
		{
			m[i]=a[i][0];max[i]=0;
			for(j=0;j<=c[i];j++)
			if(m[i]<a[i][j])
			{
				m[i]=a[i][j];
			    max[i]=j;
			}
		}

			/*for(k=0;k<c[i]-1;k++)
			{
				max[i]=k;
			for(j=k+1;j<=c[i];j++)
			   if(a[i][k]<a[i][j])
					max[i]=j;
			}*/
	/*
		for(i=0;i<n;i++)
		{
			for(j=0;j<=max[i];j++)
				printf("%c",a[i][j]);
			for(k=0;k<3;k++)
				printf("%c",b[i][k]);
			if(max[i]==c[i])
				printf("\n");
			else if(max[i]<c[i])
			{
				for(j=max[i]+1;j<c[i];j++)
					printf("%c",a[i][j]);
				    printf("%c\n",a[i][c[i]]);
			}
		}
}*/
int main()
{
char a[11],str[4],max;int position,i=0;
while(cin.getline(a,sizeof(a),' ')&&cin.getline(str,sizeof(str),'\n'))
{
	max=a[0];
	for(i=0;i<strlen(a);i++)
		if(max<a[i])
			max=a[i];
	for(i=0;i<strlen(a);i++)
		if(max==a[i])
		{
			position=i;
			break;
		}
	for(i=0;i<=position;i++)
		cout<<a[i];
	cout<<str;
	for(i=position+1;i<strlen(a);i++)
		cout<<a[i];
	cout<<endl;
}
return 0;
}
void main()
{
	char str[11],substr[4],*p,ma;
	int i,m;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		
		p=str;
		ma=*p;
		m=0;

		for(i=0;i<strlen(str);i++,p++)
		{
			if(*p>ma)
			{
				ma=*p;
				m=i;
			}
		}

		p=str;

		for(i=0;i<=m;i++,p++)
			printf("%c",*p);
		printf("%s",substr);
		for(;i<strlen(str);i++,p++)
			printf("%c",*p);
		printf("\n");
	}
	
}
int main()
{char max,s1[100],s2[100];
int l,i,j;
	while (scanf("%s%s",s1,s2)!=EOF)
{
	l=strlen(s1);
	max='\0';
	for(i=0;i<=l-1;i++){
		if(s1[i]>max){j=i;max=s1[i];}}
	for(i=0;i<=j;i++)
		printf("%c",s1[i]);
	printf("%s",s2);
	for(i=j+1;i<=l-1;i++)printf("%c",s1[i]);
putchar('\n');	
}
}
int main()
{
	int n,i,j,k;
	char str[11];
	char substr[4];
    char t;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		t=str[0];k=0;
		for(i=1;str[i]!='\0';i++)
		{
			if( (str[i]-t)>0 )
			{
                t=str[i]; k=i;
			}
		}
		for(i=0;i<=k;i++)
		{
			printf("%c",str[i]);
		}
		for(i=0;substr[i]!='\0';i++)
		{
			printf("%c",substr[i]);
		}
		for(i=k+1;str[i]!='\0';i++)
		{
			printf("%c",str[i]);
		}
		printf("\n");
	}
	return 0;
}
void main()
{
	char str[10]={0},substr[13]={0};
	int i,k,p,j;
	for(p=0;p<10000;p++)
	{
		scanf("%s %s",str,substr);
		for(i=0,k=0;i<9;i++) if(str[k]<str[i+1])k=i+1;
        for(i=k+1,j=3;i<10;i++,j++) 
		{
			substr[j]=str[i];
			str[i]=0;
		}
		printf("%s\n",strcat(str,substr));
         for(i=0;i<13;i++)
         {
             str[i]=0;
             substr[i]=0;
          }
	}
}
void main()
{
	char *a,*b,*t;int i,j,n,max=0;
	a=(char *)calloc(1,12);
	b=(char *)calloc(1,5);
	t=(char *)calloc(1,20);
	for(;scanf("%s %s",a,b)!=EOF;)
	{
		for(i=0;i<(n=strlen(a));i++)
		{if(*(a+i)>max) max=*(a+i);}
		for(i=0;i<(n=strlen(a));i++)
			if(*(a+i)==max) break;
		strncat(t,a,i+1);strcat(t,b);strcat(t,a+i+1);
		printf("%s\n",t);
		a=(char *)calloc(1,12);
	    b=(char *)calloc(1,5);
	    t=(char *)calloc(1,20);
		max=0;
	}
}
int max(char str[],int i,int l)
{
	int o;
	for(o=0;o<l;o++)
		if(str[o]>str[i]) return 0;
	return 1;
}
void main()
{   
	char str[11],substr[4];
	while(scanf("%s %s",str,substr)!=EOF){
	int l;
	l=strlen(str);
	int i;
	for(i=0;i<l;i++)
		if(max(str,i,l)==1) break;
	int j,k;
	for(j=0;j<=i;j++)
		printf("%c",str[j]);
	for(k=0;k<3;k++)
		printf("%c",substr[k]);
	for(j=i+1;j<l;j++)
		printf("%c",str[j]);
	printf("\n");

}}
void main()
{
    char a[14], b[14],t;int i,n,j,m,k;
	
	while (gets(a)!='\0')
	{
		strcpy (b,a);
		n=strlen(a);
		for (i=0;i<n;i++) if(a[i]==' ') {m=i;break;}
		for (i=0;i<m-1;i++)
			for (j=0;j<m-1-i;j++)
			if (b[j]<b[j+1]) {t=b[j];b[j]=b[j+1];b[j+1]=t;}
		for (i=0;i<m-1;i++) if (a[i]==b[0]) {k=i;break;}
		for (i=0;i<=k;i++) printf("%c",a[i]);
		for (i=n-3;i<n;i++) printf("%c",a[i]);
		for (i=k+1;i<=m-1;i++) printf("%c",a[i]);printf("\n");
	    
	}
}
int count (char str[10],int len)
{
	int i;
	int maxi=0;
	for (i=0;i<len;i++)
	{
		if (str[i]>str[maxi]) maxi=i;
	}
	return maxi;
}

void main()
{
	int n,len,j;
	char sa[14],str[11],substr[4];
	while(scanf("%s%s",str,substr)!=EOF)
		 {
	 	len=strlen(str);
		n=count(str,len);
		for(j=0;j<=n;j++)
			sa[j]=str[j];
		for(j=n+1;j<=n+3;j++)
			sa[j]=substr[j-n-1];
		for(j=n+4;j<=len+2;j++)
			sa[j]=str[j-3];
		sa[len+3]='\0';
		printf("%s\n",sa);
		 }
}
int main()
{
	char str[11],substr[4],x[15];
	int max,num,i,j;
	while(1)
	{
		max=0;
		
		if(scanf("%s%s",str,substr)==EOF)
		{
			break;
		}
		for(i=0;i<strlen(str);i++)
		{
			if(str[i]>max)
			{
				max=str[i];
				num=i;
			}
		}
		strncpy(x,str,num+1);
		for(j=num+1;j<=num+strlen(substr);j++)
		{
			x[j]=substr[j-num-1];
		}
		
		for(j=num+strlen(substr)+1;j<strlen(substr)+strlen(str);j++)
		{
			x[j]=str[j-strlen(substr)];
		}
		x[j]='\0';
		printf("%s\n",x);
	}
	return 0;
}
void main()
{
	char str[20][10]={'\0'},substr[20][3];
	int i=0,j,max,k;
	while(scanf("%s%s",str[i],substr[i])!=EOF)
		i++;
	for(i=0;str[i][0]!='\0';i++)
	{
		k=0;
		max=str[i][0];
		for(j=0;str[i][j]!='\0';j++)
		{
			if(str[i][j]>max)
			{
				max=str[i][j];
				k=j;
			}
		}
		for(j=0;j<=k;j++)
			printf("%c",str[i][j]);
		for(j=0;j<3;j++)
			printf("%c",substr[i][j]);
		for(j=k+1;str[i][j]!='\0';j++)
			printf("%c",str[i][j]);
		printf("\n");
	}
}
void main()
{
	int i,j=0,t,k,m,n;
	char temp;
	char str[20],str1[4],str2[20];
	scanf("%s%s",str,str1);
	do
	{
	m=strlen(str);
	n=strlen(str1);
	temp=str[0];
	for(i=0;i<m-1;i++)
	{
		if(temp<str[i+1])
		{
			temp=str[i+1];
			j=i+1;
		}
	}
	for(i=j+1,k=0;i<m;i++,k++)
	{
		str2[k]=str[i];
	}
	t=k;
	for(i=j+1,k=0;k<n;i++,k++)
	{
		str[i]=str1[k];
	}
	for(i=j+n+1,k=0;k<=t;i++,k++)
	{
		str[i]=str2[k];
	}
	for(i=0;i<m+n;i++)
	{
		printf("%c",str[i]);
	}
	printf("\n");
	}
	while(scanf("%s%s",str,str1)!=EOF);
}
char str1[50],str2[50],ans[50];
void main()
{
	char cutin();

	while(scanf("%s%s",str1,str2)!=EOF)
	{
		cutin();
		printf("%s\n",ans);
	}
}

char cutin()
{
	int i,max=0,max_index=0;
	char temp[50];
	char *p=str1;
	for(i=0;str1[i]!='\0';i++)
	{
		if(*(p+i)>max)
		{
			max=*(p+i);
			max_index=i;
		}
	}
	strcpy(ans,"");
	strncat(ans,str1,max_index+1);
	strcat(ans,str2);
	char *q1=&str1[max_index+1];
	char *q2=temp;
	for(i=0;str1[i]!='\0';i++)
		*(q2+i)=*(q1+i);
	*(q2+i)='\0';
	strcat(ans,temp);
	return 0;
   
}
void main()
{
	char str[15],substr[4],k;
	int i,j,t;
	while (scanf("%s%s",str,substr)!=EOF)
	{
		for(k=i=0;str[i]!=0;i++)
			if(str[i]>k)
			{
				k=str[i];
				j=i;
			}
		for(t=i+3;t>j+3;t--)
			str[t]=str[t-3];
		for(i=0;i<3;i++)
			str[j+1+i]=substr[i];
		printf("%s\n",str);
	}
}
void main()
{
	int cha(char array[11]);
	int i,j;
	char str[11],substr[4];
	for(i=0;scanf("%s %s",str,substr)!=EOF;i++)
	{
	   for(j=0;j<=cha(str);j++)
	    	printf("%c",str[j]);
	   printf("%s",substr);
	   for(j=j;str[j]!='\0';j++)
	    	printf("%c",str[j]);
	   printf("\n");
	}
}

int cha(char array[11])
{
	int i,k=0;
	for(i=1;array[i]!='\0';i++)
	{
		if(array[k]<array[i])
			k=i;
	}
	return (k);
}
int main()
{
    char str[20],substr[4];
    char c;
    memset(str,0,sizeof(str));
   while(cin.getline(str,15,' '))
    {
          cin.getline(substr,4);
          
    char *p,*max=str;
    
    for(p=str;*p!=0;)
    {
                    if(*p>*max) max=p;
                    p++;
    }
    p=str;
    do
    {
                    cout<<*p;
                    if(p==max) cout<<substr;
                    p++;
    }while(*p!=0);
    
    cout<<endl;
    
   
    if(c==0) break;
    else c=str[0];
     memset(str,0,sizeof(str));
    }
    return 0;
    
}
int f(char str[])              /*?????str?ASCII??????*/
{
	int i,a,n;
	char ch=str[0];
	a=strlen(str);
	for(i=1;i<a-4;i++)
	{
		if(str[i]>ch){ch=str[i];n=i;}
	}
	return(n);
}
void main()
{
	int i=0,n,j,a,length[100];
	char str[100][50],str1[100][50];
	do
	{                                          /*????????*/
		gets(str[i]);
	    length[i]=strlen(str[i]);i++;
	}
	while(length[i-1]!=0);
	n=i-1;
	for(i=0;i<n;i++)
	{
		a=f(str[i]);
		for(j=0;j<50;j++)
		{
			if(j<a+1)str1[i][j]=str[i][j];
			else if(j>a&&j<a+4)str1[i][j]=str[i][length[i]+j-4-a];
            else if(j>a+3 && j<length[i]-1)str1[i][j]=str[i][j-3];
			else if(j>=length[i]-1)str1[i][j]='\0';
		}			    
	}
	for(i=0;i<n;i++)printf("%s\n",str1[i]);
}
int main()
{
	char s1[15],s2[4],max;
	int i,j,len,k;
	while(scanf("%s%s",s1,s2)!=EOF)
	{
		len=strlen(s1);
		k=0;
        max=s1[0];
		for(j=1;j<len;j++)
		{
			if(max<s1[j])
			{
				max=s1[j];
				k=j;
			}
		}	
		for(j=len+2;j>k+3;j--)
			s1[j]=s1[j-3];
		for(j=k+1,i=0;j<k+4;j++,i++)
			s1[j]=s2[i];
		s1[len+3]='\0';
		puts(s1);
	}
	return 0;
}
char string[13];
void f(char str[],char substr[]);
void main()
{
int i;	
char str[10],substr[4];
	while (scanf("%s%s",str,substr)!=EOF)
	{
		f(str,substr);
for(i=0;i<strlen(str)+3;i=i+1)
printf("%c",string[i]);
printf("\n");
	}
}
void f(char str[10],char substr[4])
{
	int i,j,k,t;
	char max;
	max=str[0];
k=0;
	t=strlen(str);
	for(i=1;i<t;i=i+1)
	{
		if(str[i]>max)
		{
			max=str[i];
			k=i;
		}
	}
	for(i=0;i<=k;i=i+1)
	{
		string[i]=str[i];
	}
	j=0;
	for(i=k+1;i<=k+3;i=i+1)
	{
		string[i]=substr[j];
		j=j+1;
	}
	if(k<t-1)
	{
		j=k+1;
		for(i=k+4;i<t+3;i=i+1)
		{
			string[i]=str[j];
			j=j+1;
		}
	}
}