semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{
	char str[11],substr[4],*p1=str,*p2=substr;
	int i,j,k;
    while(scanf("%s%s",str,substr)!=EOF)
	{for(i=0,k=0;str[i]!='\0';i++)
		{if(str[i]>str[k])
			k=i;}
	
	for(j=0;j<=k;j++)
	  printf("%c",*(p1+j));
    printf("%s",substr);
    for(j=0;str[k+1+j]!='\0';j++)
	  printf("%c",*(p1+k+1+j));
	printf("\n");
	}
}
int main()
{
	int i=0;
	char max=0;
	char str[14],substr[4];
	char *p=str,*q=str;
	while(cin>>str>>substr)
	{
		i=0;
		max=*p;
		while(*(p+i)!='\0')
		{
			if(*(p+i)>max)
			{
				max=*(p+i);
				q=p+i;
			}
			i++;
		}
		for(i=11-(q-p+1);i>=1;i--)
		{
			*(q+i+3)=*(q+i);
		}
		for(i=1;i<=3;i++)
		{
			*(q+i)=substr[i-1];
		}
		cout<<str<<endl;
	}
	return 0;
}
void main()
{
	char a[15],b[11]={'\0'},c[4]={'\0'};
	int i,j,k,p,l;

	while (scanf("%s%s",b,c)!=EOF)	
	{
		l=strlen(b);p=0;
		for(i=1;i<l;i++)
			if(b[i]>b[p]) p=i;
		for(i=0;i<=p;i++) printf("%c",b[i]);
		for(i=0;i<3;i++) printf("%c",c[i]);
		for(i=p+1;i<l;i++) printf("%c",b[i]);
		printf("\n");
	}
}
int main()
{
	char a[100]={'\0'},b[4]={'\0'},*q=NULL,*p=NULL;
	int temp=0;
	while(cin>>a)
	{
	cin>>b;
	temp=0;
	for(p=a;p<a+strlen(a);p++)
	{
		if(*p>temp)temp=*p;
	}
	for(p=a;p<a+strlen(a);p++)
	{
		if(*p==temp)break;
	}
	for(q=a;q<=p;q++)cout<<*q;
	cout<<b;
	for(q=p+1;q<a+strlen(a);q++)cout<<*q;
	cout<<endl;}
	return 0;
}
main()
{  char str[11],substr[4],st;
   while(scanf("%s",&str)!=EOF)
   {    scanf("%s",&substr);
        int i=0,k,t=0;
		k=strlen(str);st=str[0];
		for(i=0;i<k;i++)
			if(str[i]>st)
			{	st=str[i];
                t=i;
			}  
			for(i=0;i<t+1;i++)
				printf("%c",str[i]);
			printf("%s",substr);
	        for(i=t+1;i<k;i++)
				printf("%c",str[i]);

         printf("\n");
   }
}
void main()
{
	int i,maxi;
	char max,a[10],b[10];
	while(scanf("%s ",a)!=EOF)
	{
		max=a[0];
		gets(b);
		for(i=0;a[i]!='\0';i++)
		{
			if(a[i]>max)
			{
				maxi=i;
				max=a[i];
			}
		}
		for(i=0;i<=maxi;i++)
		{
			printf("%c",a[i]);
		}
		printf("%s",b);
		for(i=maxi+1;a[i]!='\0';i++)
		{
			printf("%c",a[i]);
		}
		printf("\n");
	}
}
int main()
{
	int i,j,m,k;
    char str[11],strsub[4];
	for(j=0;;j++)
	{
		k=0;
		if(scanf("%s%s",str,strsub)==EOF)break;
		m=strlen(str);
		for(i=0;i<m;i++)
		{
			if((str[k]-str[i])<0)
			{
				k=i;
			}
		}
		for(i=0;i<k+1;i++)
		{
			printf("%c",str[i]);
		}
		printf("%s",strsub);
		for(i=k+1;i<m;i++)
		{
			printf("%c",str[i]);
		}
		printf("\n");
	}
	
	return 0;
}
int main ()
{
    int i, n, a,m;
    char str[11],substr[4];

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

        {
            n=strlen(str);
            m=0;

            for (i=0;i<n;i++)
            {
                if (str[i]>m)
                {
                    m=str[i];
                    a=i;
                }
            }


            for (i=0;i<n;i++)
            {
                printf("%c",str[i]);
                if (i==a)
                    printf("%s",substr);
            }
            printf("\n");
        }

}
void main()
{
	char a[15]={'\0'},b[4]={'\0'},c[15]={'\0'},d;
	int num=0,j,max,q,len,t;

    while(1)
	{
		if((d= getchar())==EOF)
		{break;}
		a[0]=d;
		gets(&a[1]);
		max=0;
		len=strlen(a);
		for(j=0;j<3;j++)
		{b[j]=a[len+j-3];
		}
		for(j=0;j<len-4;j++)
		{
			t=a[j];
			if(t>max)
			{
				max=t;
				q=j;
			}
		}
        strcpy(c,a);
		for(j=q+1;j<q+4;j++)
		{a[j]=b[j-q-1];
		}
		for(j=q+4;j<len-1;j++)
		{a[j]=c[j-3];
		}

	
		for(j=0;j<len-1;j++)
		{printf("%c",a[j]);
		}
		printf("\n");
	}
	
}
void main()
{
char str[50][13],*p,substr[50][3],max;
int i=0,a[50],j,k,m;
while(scanf("%s %s",str[i],substr[i])!=EOF)
{
	a[i]=strlen(str[i]);
    i++;
}
for(j=0;j<i;j++)
{
	for(p=str[j],max=str[j][0];p<str[j]+a[j];p++)
	if(*p>max)
	max=*p;
	for(k=0;k<a[j];k++)
		if(max==str[j][k])
		{
			for(m=a[j]+2;m>k+3;m--)
				str[j][m]=str[j][m-3];
			str[j][k+1]=substr[j][0];
			str[j][k+2]=substr[j][1];
			str[j][k+3]=substr[j][2];
			str[j][a[j]+3]='\0';break;
		}
		printf("%s\n",str[j]);
}
}
void main()
{
	int i,j,n;
	char a[11],b[3],c[14];
	for(j=0;j<10;j++)
	{
	for(i=0;i<11;i++)
		a[i]='\0';
	for(i=0;i<3;i++)
		b[i]='\0';
	for(i=0;i<14;i++)
		c[i]='\0';
	scanf("%s",a);
	scanf("%s",b);
	for(i=0,n=0;a[i]!='\0';i++)
		if(a[i]>a[n])
			n=i;
	strncpy(c,a,n+1);
	c[n+1]=b[0];
	c[n+2]=b[1];
	c[n+3]=b[2];
	for(i=n+1;a[i]!='\0';i++)
		c[i+3]=a[i];
	printf("%s\n",c);
	}
}
void main()
{
	int i,n;char str[11],substr[4];
	int max;
	while(scanf("%s %s",str,substr)!=EOF)
{
	n=strlen(str);
	char * p1;char * p2;char *p3;
	p1=str,p2=str,p3=str;max=str[0];
	for(i=0;i<n;i++)
	{
		if(*(p1+i)>max)
		{
			max=*(p1+i);p2=p1+i;
		}
	}
	for(p1=str;p1<(p2+1);p1++)
    	printf("%c",*p1);
	for(i=0;i<3;i++)
		printf("%c",substr[i]);
	for(p1=p2+1;p1<(p3+n);p1++)
        printf("%c",*p1);
	printf("\n");
}
}
void main()
{
	int i,j,k,l1;
	char str1[15],str2[4],c,d;
	while(scanf("%s",str1)!=EOF)
	{
		scanf("%s",str2);
		c=0;
		l1=strlen(str1);
		for(i=0;i<l1;i++)
		{
			d=(int)str1[i];
			if(d>c)
			{
				c=d;
			    j=i;
			}
		}
		for(k=l1+2,str1[k+1]='\0';k>j;k--)
		{
			str1[k]=str1[k-3];
		}
		str1[j+3]=str2[2];
		str1[j+2]=str2[1];
		str1[j+1]=str2[0];
		puts(str1);
	}
}
void insert(char st1[],char st2[]){
	int i,m,n;
	char max;
	m=strlen(st1);
	max=st1[0];
	n=m-1;


	for(i=0;i<m;i++){
		if(st1[i]>max){
			max=st1[i];
			n=i;}
	}

    for(i=0;i<=n;i++)printf("%c",st1[i]);
	for(i=0;i<3;i++)
	printf("%c",st2[i]
	);
	for(i=n+1;i<m;i++)printf("%c",st1[i]);
	printf("\n");
}
void main(){
	char st1[50][10],st2[50][4];
	int i,j,k;
	char p;
	while((st1[i][0]=getchar())!=EOF){
		for(j=1;;j++){
			if((p=getchar())!=' ')
				st1[i][j]=p;
			else{st1[i][j]='\0';
			     break;}
		}
		scanf("%s",st2[i]);
		i++;p=getchar();
		
	}
	k=i;
	for(i=0;i<k;i++)
		insert(st1[i],st2[i]);
}
main()
{
	char s1[14],s2[4],t;
	int n,m,i,j,k;
	while (scanf("%s%s",s1,s2)!=EOF)
	{
		m=strlen(s1);
		n=strlen(s2);
		j=0;
		t=s1[0];
		for (i=1;i<m;i++)
		{
			if(s1[i]>t)
			{
				j=i;
				t=s1[i];
			}
		}
		for (i=0;i<=m-j-1;i++)
			s1[n+m-i]=s1[m-i];
		for (i=0;i<n;i++)
			s1[j+1+i]=s2[i];
		for (i=0;i<m+n;i++)
	    printf("%c",s1[i]);
printf("\n");	}

}
void main()
{
	char str[11],substr[4];
	int i,k=0,n;
	char a;
	while(scanf("%s %s",str,substr)==2)
	{
		n=strlen(str);
		a=str[0];
		for(i=0;;i++)//??ASCII???????
		{
			if(str[i]=='\0')
			break;
			if(str[i]>a)
			{
				a=str[i];
				k=i;
			}
		}
		for(i=0;i<=k;i++)
			printf("%c",str[i]);
		for(i=0;i<=2;i++)
			printf("%c",substr[i]);
		for(i=k+1;i<n;i++)
			printf("%c",str[i]);
		printf("\n");
	}
	
}
void main()
{
	char str[10],strc[13],substr[3],max,num;
	int i,n;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		n=strlen(str);
		max=0;
		for(i=0;i<n;i++)
		{
			if(str[i]>max) 
			{
				max=str[i];
				num=i;
			}
		}
		for(i=0;i<=num;i++)
		{
			strc[i]=str[i];
		}
		for(i=num+1;i<=num+3;i++)
		{
			strc[i]=substr[i-num-1];
		}
		for(i=num+4;i<n+3;i++)
		{
			strc[i]=str[i-3];
		}
		strc[n+3]='\0';
		printf("%s\n",strc);
	}
}
void main(){
	char a[15];
	char str[15],substr[3];
	int i=0,max,n,k;

	for(;;)
	{i=0;
       if((a[0]=getchar())==EOF)
		   exit(-1);
	   gets(&a[1]);
	   while(a[i]!=' ')
	   { str[i]=a[i];i=i+1;
	   }
	   str[i]='\0';
	   substr[0]=a[i+1];
	   substr[1]=a[i+2];
	   substr[2]=a[i+3];

	   max=0;n=strlen(str);
		for(k=1;k<=n-1;k++)
		{
			if(str[k]>str[max]) max=k;
		}
		for(k=n-1;k>=max+1;k=k-1)
			str[k+3]=str[k];
		str[max+1]=substr[0];
	    str[max+2]=substr[1];
	    str[max+3]=substr[2];
		str[n+3]='\0';
printf("%s\n",str);
	}
}
int main()
{
	char s[301];
	char ds[301];
    int i,j,k,l,max;
	while (scanf("%s",&s)!=EOF)
	{
      
	  l=strlen(s);
	  scanf("%s",&ds);
	  max=l-1;
	  for (j=l-1;j>0;j=j-1)
	  {
		  if (s[j]>=s[max]) max=j;
	  }
	  for (i=0;i<=max;i++)
		  printf("%c",s[i]);
	  printf("%s",ds);
	  for(i=max+1;i<l;i++)
		  printf("%c",s[i]);
	  printf("\n");
	}
	return 0;
}
main()
{
	char str1[100],str2[100],str3[100];
	int temp1,temp2,l1,l2,max;
	while(scanf("%s%s",str1,str2)!=EOF)
	{
		l1=strlen(str1);
		l2=strlen(str2);
		max=0;
		for(temp1=1;temp1<=l1-1;temp1++)
		{
			if(str1[temp1]>str1[max])
				max=temp1;
		}
		for(temp1=max+1,temp2=0;temp1<=l1-1;temp1++,temp2++)
		{
			str3[temp2]=str1[temp1];
			str1[temp1]='\0';
		}
		str3[temp2]='\0';
		strcat(str1,str2);
		strcat(str1,str3);
		puts(str1);
	}
	return 0;
}
int main()
{
    char s1[11]={0},s2[4]={0},*p;
    int i,n,m;
    while(scanf("%s%s",s1,s2)!=EOF)
    {
          n=strlen(s1);
     p=&s1[0];
     for(i=0;i<n;i++)
     if(*p<s1[i])p=&s1[i];
     m=p-&s1[0]+1;
     for(i=0;i<m;i++)
     printf("%c",s1[i]);
     printf("%s",s2);
     for(i=m;s1[i]!=0;i++)
     printf("%c",s1[i]);
     printf("\n");
     }
}
void main()
{
	char a[1000][15]={'\0'};
	int n,i,j;
	for(i=0;i<1000;i++)
	{
		gets(a[i]);
		n=strlen(a[i]);
		if(n==0) break;
	}
	int k=i;
	int max,p;
	for(i=0;i<k;i++)
	{
		max=a[i][0];p=0;
		n=strlen(a[i]);
		for(j=0;j<n-4;j++)
		{if(a[i][j]>max) {max=a[i][j];p=j;}}
		for(j=0;j<=p;j++)
		{printf("%c",a[i][j]);}
		printf("%c%c%c",a[i][n-3],a[i][n-2],a[i][n-1]);
		for(j=p+1;j<n-4;j++)
		{printf("%c",a[i][j]);}
		printf("\n");
	}
}
void main()
{
	void insert(char s[]);
	char a[100][100],b[100][100];
	int i,n;
	gets(a[1]);
	
	for(i=2,n=0;a[i-1][0]!='\0';i++)
	{
		gets(a[i]);
		n++;
	}
	//printf("%d",n);
	for(i=1;i<=n;i++)
	insert(a[i]);
}
	void insert(char s[])
	{
		int n,i,j,max=0,m;
		char a[3];
		n=strlen(s);
		for(i=1,j=n-3;i<=3;i++,j++)
			a[i]=s[j];
		for(i=0;i<n-4;i++)
			max=max>s[i]?max:s[i];
		//printf("%c",max);
		for(i=0;i<n-4;i++)
			if(s[i]==max)	{m=i;break;}
			
			//printf("%d",m);
		for(i=0;i<=m;i++)
			printf("%c",s[i]);
		for(i=1;i<=3;i++)
			printf("%c",a[i]);
		for(i=m+1;i<n-4;i++)
			printf("%c",s[i]);
		printf("\n");
	}
void main()
{
	char str[10],s[10],p;
	int i,t;
	while (scanf("%s",str)!=EOF)
	{
		scanf("%s",s);
		p=str[0];t=0;
		for(i=1;i<strlen(str);i++)
		{
			if (str[i]>p)
			{
				p=str[i];
				t=i;
			}

		}
        for (i=0;i<=t;i++)
			printf("%c",str[i]);
		printf("%s",s);
		for (i=t+1;i<strlen(str);i++)
			printf("%c",str[i]);
		printf("\n");
		
	}
}
main()
{
  char d,a[11],b[4],c[14];
  int n,i,f;
  while(scanf("%s %s",a,b)!=EOF)
  {
	 n=strlen(a);
     d=a[0];
	 f=0;
     for(i=0;i<n;i++)
	 { if(a[i]>d) 
	  {
	    d=a[i];
        f=i;
	 }
	 }
    c[0]='\0';
	strncat(c,a,f+1);
	strcat(c,b);
	strcat(c,a+f+1);
	puts(c);
  }
}
void main()
{
	int i,l,k,m=0;
	char *p1,*p2,*p3;
	char max;
	char str[11];
	char substr[4];
	char res[13];
	while(scanf("%s%s",str,substr)!=EOF)
	{
		p1=str;p2=substr;p3=res;
	   l=strlen(str);
	   max=str[0];
       k=0;
	   for(i=0;i<l;i++)
	   {
		   if(max<str[i]){max=str[i];k=i;}
	   }
	   for(i=0;i<13;i++)
	   {
		   if(i<=k)*(p3+i)=*(p1+i);
	       else if(i<=k+3)*(p3+i)=*(p2+i-k-1);
	       else if(i<l+3)*(p3+i)=*(p1+i-3);
	       else res[i]='\0';
	   }
	   printf("%s\n",res);
	   }
}
void f(char a[],char b[3])
{
	int t=0,i,l;
	for (i=1;;i++)
	{
		if (a[i]>a[t])
			t=i;
		if (a[i]=='\0')
		{
			l=i;
			break;
		}
	}
	for (i=l;i>=t+1;i--)
	{
		a[i+3]=a[i];
	}
	a[l+3]='\0';
	for (i=t+1;i<=t+3;i++)
	{
		a[i]=b[i-t-1];
	}
	printf ("%s\n",a);
}
void main()
{
	char a[100][11]={0},b[3],i=0;
	for (i=0;i<5;i++)
	{
		scanf("%s %s",a[i],b);
		f(a[i],b);	
		if (a[i][0]=='\n') break;
	}
}
void main()
{for(;;){
	char s1[19],s2[4],s3[20];
	if(scanf("%s%s",s1,s2)==EOF) break;
	int l;
	l=strlen(s1);
	int i,j,max=0;
	for(i=0;i<l;i++)
		if(s1[i]>s1[max]) max=i;
	for(i=0;i<=max;i++)
		s3[i]=s1[i];
	for(i=0,j=max+1;i<3;i++,j++)
		s3[j]=s2[i];
	for(i=max+1,j=max+4;i<l;i++,j++)
		s3[j]=s1[i];
	s3[l+3]='\0';
	puts(s3);
}}
void main()
{
	char a[30],b[10],max;
	scanf("%s%s",a,b);
	int la,lb,index,i;
	do
	{
		la=strlen(a);
	    lb=strlen(b);
		max=a[0];index=0;
		for(i=0;i<la;i++)
		{
			if(a[i]>max)
				max=a[i];
		}
		for(i=0;i<la;i++)
		{
			if(a[i]==max)
			{
				index=i;
				break;
			}
		}
		for(i=0;i<=index;i++) printf("%c",a[i]);
		for(i=index+1;i<=index+lb;i++) printf("%c",b[i-index-1]);
		for(i=index+lb+1;i<la+lb;i++) printf("%c",a[i-lb]);
		printf("\n");
		scanf("%s",a);
	}
	while(scanf("%s",b)!=EOF);
}
void main()
{
	char a[15],b[5];
	while(scanf("%s%s",a,b)!=EOF)
	{		
		char* ptr=a;
		char* insert=a;
		char temp=*ptr;
		while(*(ptr)!='\0')
		{
			if(*(ptr)>temp)
			{
				temp=*(ptr);
				insert=ptr;
			}
			ptr++;
		}
		char* move=ptr+3;
		while(ptr!=insert)
		{
			*move=*ptr;
			move--;
			ptr--;
		}
		move=b;
		ptr++;
		while(*(move)!='\0')
		{
			*ptr=*move;
			move++;
			ptr++;
		}
		printf("%s\n",a);
	}
}
void main()
{
	char str[10],substr[3],s[13];
	char *p,*m,*n,*q;
	char max;
	while(scanf("%s %s",str,substr)!=EOF){
	for(m=str,max=*m;*m!='\0';m++)
		if(*m>max)
			max=*m;
    for(m=str;*m!='\0';m++)
		if(*m==max)
		{
			q=m;
			break;
		}
	for(p=s,m=str;m<=q;p++,m++)
		*p=*m;
	for(n=substr;*n!='\0';n++,p++)
		*p=*n;
	for(m=q+1;*m!='\0';m++,p++)
	    *p=*m;
	*p='\0';
	p=s;
	printf("%s\n",p);
	}
}
int main()
{
	int i,max,maxi;
	char str[10],substr[4];
	while(scanf("%s %s",str,substr)!=EOF)
	{
		max=maxi=0;
		for(i=0;str[i]!=0;i++)
		{
			if(str[i]>max)
			{
				max=str[i];
				maxi=i;
			}
		}	
		for(i=0;i<=maxi;i++)
			printf("%c",str[i]);
		printf("%s",substr);
		for(;str[i]!=0;i++)
			printf("%c",str[i]);
		printf("\n");
	}
	return 0;
}
int main()
{
	int n,i,s,k;
	char  a[15],b[5];
    while( scanf("%s%s",a,b)!=EOF)
	{
        s=0;
        k=0;
		n=strlen(a);
		for(i=0;i<n;i++)
		{
			if(a[i]>k) 
			{
				k=a[i];
				s=i;
			}
		}
		
		for(i=0;i<=s;i++)
		{
			printf("%c",a[i]);
		}
		printf("%s",b);
		for(i=s+1;i<n;i++)
		{
			printf("%c",a[i]);
		}
		printf("\n");
	}
		return 0;
}
int main()
{
    char str[14],substr[4],a[11];
	int i,j,k,l,len,p;
    while(cin.get(str,11,' '))
	{
		p=0;
	    k=0;
		len=strlen(str);
		cin.get();
		cin.getline(substr,4);
		for(i=0;i<len-1;i++)
			for(j=i+1;j<len;j++)
				if(str[i]>str[j])
				  if(str[i]>str[p])
					  p=i;
        for(j=p+1;j<len;j++)
			a[k++]=str[j];
		a[k]='\0';
		k=0;
		str[p+1]=substr[0];
		str[p+2]=substr[1];
		str[p+3]=substr[2];
		for(i=p+4;i<len+3;i++)
			str[i]=a[k++];
		str[i]='\0';
		cout<<str;
		cout<<endl;
	}
	return 0;
}
char str[10];
char substr[3];
int pan(){
	int j,i,x,qq=strlen(str)-1;
	for(i=0;i<strlen(str);i++){
		x=0;
		for(j=0;j<strlen(str);j++){
			if(str[i]<str[j]){x=0;break;}
			x=1;}
		if(x==1){qq=i;break;}
	}
	return qq;
	}
		 	
			


int main(){
	while (scanf("%s %s",str,substr)!=EOF){
		int i;
		for(i=0;i<=pan();i++)printf("%c",str[i]);
		for(i=0;i<3;i++)printf("%c",substr[i]);
		for(i=pan()+1;i<strlen(str);i++)printf("%c",str[i]);
		printf("\n");}
	return 0;
}
int main()
{
	int i,j,t;
	char str[11],substr[4];
	while(scanf("%s%s",str,substr)!=EOF){
		t=0;
		for(i=0;str[i];i++)if(str[i]>t)t=str[i];
	for(i=0;str[i];i++){
		if(str[i]<t)printf("%c",str[i]);
		else{
			printf("%c",str[i]);
			printf("%s",substr);
			break;
		}
	}
	for(j=i+1;str[j];j++)printf("%c",str[j]);
	printf("\n");
        }
	return 0;
}
void main(){
   int x=0,i;
   char s1[100],s2[100],s3[100],s4[100];
   while (scanf("%s %s",s1,s2)!=EOF){
        char max='0';
        int maxi=0;
        int len1=strlen(s1);
      //  printf("%s\n",s1);
      //  printf("%d\n",len1);
        for (i=0;i<len1;i++)
            if (s1[i]>max){
                max=s1[i];
                maxi=i;
            }
        strcpy(s3,s1);
       // printf("%s\n",s3);
        s3[maxi+1]='\0';
        strcat(s3,s2);
      //  printf("%s\n",s3);
        s4[0]='\0';
        for (i=maxi+1;i<=len1;i++){
            s4[i-maxi]=s4[i-maxi-1];
            s4[i-maxi-1]=s1[i];
        }
      //  printf("%s\n",s4);
        strcat(s3,s4);
        printf("%s\n",s3);
   }
}
void main()
{
	char *p1,*p2;
	int m,n,i,j,k,t,max;
	p1=(char *)malloc(1000*sizeof(char));
	p2=(char*)malloc(3*sizeof(char));
	while(scanf("%s %s",p1,p2)!=EOF)
	{
		t=0;
		n=strlen(p1);
		max=*p1;
		for(i=0;i<n;i++)
			if(*(p1+i)>max)
			{
				max=*(p1+i);
				t=i;
			}
			for(i=n-1;i>=t+1;i--)
				*(p1+i+3)=*(p1+i);
			*(p1+n-1+4)='\0';
			for(i=0;i<3;i++)
			*(p1+t+1+i)=*(p2+i);
			printf("%s\n",p1);
	}
	
}
int main()
{
    int i,L,zhi,j,k;
    char str[15],substr[4],c;
    while(scanf("%s%s",str,substr)!=EOF)
    {
    	L=strlen(str);
    	c=str[0];
    	zhi=0;
    	for(i=1;i<L;i++)
    	{
	    	if(c<str[i]) 
	    	{
	    		c=str[i];
	    		zhi=i;
	    	}
	    }
	    for(j=0;j<=zhi;j++)
	    {
    		printf("%c",str[j]);
    	}
    	printf("%s",substr);
    	for(k=zhi+1;k<L;k++)
    	{
	    	printf("%c",str[k]);
	    }
	    printf("\n");
    }
}
void dd(char a[],char b[])
{
	int i,j=0,m,max;
	m=strlen(a);
	max=a[0];
	for(i=0;i<m;i++)
	{
		if(a[i]>max)
		{
			max=a[i];
			j=i;
		}
	}
	for(i=m;i>j;i--)
	{
		a[i+3]=a[i];
	}
	a[j+1]=b[0];
	a[j+2]=b[1];
	a[j+3]=b[2];
	for(i=0;i<m+3;i++)
	{
		printf("%c",a[i]);
	}
	printf("\n");
}
void main()
{
	char a[20],b[5];
	
    while(scanf("%s%s",a,b)!=EOF)
{
	dd(a,b);
	}
	
}
int main()
{
	int i,m,j,k,l,n;
	char c[11]={' '},cc[4]={' '};
	while(!(feof(stdin)))
	{
		scanf("%s%s\n",c,cc);
		l=strlen(c)-1;
		m=0;
		for (i=0;i<=l;i++)
			if (c[i]>c[m]) m=i;
		for (i=0;i<=m;i++)
			putchar(c[i]);
		printf("%s",cc);
		for (i=m+1;i<=l;i++)
			putchar(c[i]);
		printf("\n");
	}
	return 7;
}
int findmax(char *str)
{
	int i,max=*str,ret=0;
	for(i=0;*(str+i);i++)
		if(*(str+i)>max)
		{
			max=*(str+i);
			ret=i;
		}
	return ret;
}

void insert(char *str,char *substr,int index)
{
	int i;
	char *p;
	for(p=str+strlen(str);p>str+index;p--)
		*(p+strlen(substr))=*p;
	for(i=0;i<strlen(substr);i++)
		*(str+index+1+i)=*(substr+i);
}

int main()
{
	int k;
	char *str,*substr;
	str=(char *)malloc(11*sizeof(char));
	substr=(char *)malloc(3*sizeof(char));
	while(scanf("%s%s",str,substr)!=EOF)
	{
		k=findmax(str);
		insert(str,substr,k);
		printf("%s\n",str);
	}
	return 0;

}
int main()
{
	char s1[11],s2[4],t[20];
	int max,i,p;
	while(scanf("%s%s",s1,s2)!=EOF)
	{
		max=0;
		for(i=0;i<strlen(s1);i++)
		{
			if(s1[i]>max)
			{
				max=s1[i];
				p=i;
			}
		}
		strcpy(t,s1+p+1);
		s1[p+1]='\0';
		strcat(s1,s2);
		strcat(s1,t);
		puts(s1);
	}
	return 0;
}
int main()
{
    char str[11],substr[4];
while(cin>>str>>substr)
{
char a[14];
int len_a=strlen(str),len_b=strlen(substr),i,j;
char max=0;
for(i=0;i<len_a;i++)//?????
{
if(str[i]>max)  max=str[i];
else  continue;
}
for(i=0;i<len_a;i++)
{
if(str[i]==max)
{
if(i==len_a-1)//????????????,????????,?????
{
for(j=len_a;j<=len_a+len_b;j++)
str[j]=substr[j-len_a];
}
else
{
for(j=0;j<len_a-i-1;j++)
a[j]=str[j+i+1];
for(j=i+1;j<i+len_b+1;j++)
str[j]=substr[j-i-1];
for(j=i+len_b+1;j<len_a+len_b;j++)
str[j]=a[j-i-len_b-1];
str[j]='\0';
}
break;
}
else continue;
}
cout<<str<<endl;}
return 0;
}
int main()
{
	char a[11];
	char b[4];
	char max;
	int i=0,j=0,k=0,m=0,y=0,temp;
	for(i=0;i<11;i++)
	{
		a[i]='\0';
	}
	while(cin>>a)
	{
		temp=0;
	    cin>>b;
	    max=a[0];
		for(j=0;j<strlen(a);j++)
		{
			if(a[j]>max)
			{
				max=a[j];
			    temp=j;
			}
		}
		for(k=0;k<=temp;k++)
		{
			cout<<a[k];
		}
		for(m=0;m<3;m++)
		{
			cout<<b[m];
		}
		for(y=temp+1;y<strlen(a);y++)
		{
			cout<<a[y];
		}
		cout<<endl;
	}
	return 0;
}
char max(char ch[],int len)
{
	int i;
	char t;
	for(i=0;i<len-1;i++)
		if(ch[i]>ch[i+1])
		{
			t=ch[i];
			ch[i]=ch[i+1];
			ch[i+1]=t;
		}
	return ch[len-1];
}
int main()
{
	char str[20],sub[4],x[20],m;
	int len,i;
    while(scanf("%s %s",str,sub)!=EOF)
	{
		len=strlen(str);
		strcpy(x,str);
		m=max(x,len);
		i=0;
		do 
		{
			printf("%c",str[i]);
			i++;
		}
		while(str[i]!=m);
		printf("%c",str[i]);
		printf("%s",sub);
		for(++i;i<len;i++)printf("%c",str[i]);
printf("\n");
	}
	return 0;
}
int main()
{
	int position,i,lena,lenb,n=10;
	char a[10],b[4],*p=NULL,max;
	while(n--)
	{
		max=0;
		memset(a,'\0',sizeof a);
		memset(b,'\0',sizeof b);
		cin>>a;
		cin>>b;
		lena=strlen(a);
		lenb=strlen(b);
		p=&a[0];
		for(i=0;i<lena;i++)
		{
			if(*p>max)
			{
				max=*p;
				position=i;
			}
			p+=1;
		}
		for(i=0;i<=position;i++)
			cout<<a[i];
		cout<<b;
		for(i=position+1;i<lena;i++)
			cout<<a[i];
		cout<<endl;
	}
	return 0;
}
void insert(char str[],char substr[])
{
	int i,j,k,lenstr,lensubstr,lentemp,max;
	char temp[10]={0};
	lenstr=strlen(str);
	lensubstr=strlen(substr);
	max=0;
	for(i=0;i<=lenstr-1;i++)
	{
		if(str[i]>str[max])
		max=i;
	}
	for(i=0,j=max+1;j<=lenstr-1;i++,j++)
		temp[i]=str[j];
	lentemp=strlen(temp);
	for(i=0,j=max+1;i<=lensubstr;i++,j++)
	    str[j]=substr[i];
	for(i=0,k=j-1;i<=lentemp-1;i++,k++)   
	    str[k]=temp[i];
}
void main()
{
	char str[20]={0},substr[4]={0};
	int len,i;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		insert(str,substr);
		len=strlen(str);
		for(i=0;i<=len-1;i++)
		printf("%c",str[i]);
		printf("\n");
		for(i=0;i<=19;i++)
		str[i]=0;
		for(i=0;i<=3;i++)
		substr[i]=0;
	}
}
int main()
{
	char a[11],b[4],temp=0;int t=0,i,n;
	while(scanf("%s%s",a,b)!=EOF)
	{
		n=strlen(a);
		for(i=0;i<n;i++)
		{
			if(a[i]>temp)temp=a[i],t=i;
		}
		for(i=0;i<=t;i++)
		printf("%c",a[i]);
		printf("%s",b);
		for(i=t+1;i<n;i++)
		printf("%c",a[i]);
		printf("\n");
		t=0;temp=0;
	}
}
main()
{
	int n,max,m,i;
	char str1[11],str2[4],c,s[]="";
	scanf("%s",str1);
	scanf("%s",str2);
	c=getchar();
	n=strlen(str1);
	while (c!='\0'&&n!=0)
	{
	   max=0;
	   m=0;
	   for (i=0;i<n;i++)
		  if (str1[i]>max) 
		  {
			max=str1[i];
			m=i;
		  }
		for (i=0;i<=m;i++) printf("%c",str1[i]);
		printf("%s",str2);
		for (i=m+1;i<n;i++) printf("%c",str1[i]);
		printf("\n");
		strcpy(str1,s);
		scanf("%s",str1);
	    scanf("%s",str2);
	    c=getchar();
		n=strlen(str1);
	}
}
void main()
{
	int n,i=0,j,l[100],m[100]={0};
	char str[100][13],substr[100][13];
	while(scanf("%s%s",substr[i],str[i])!=EOF)
		i++;
	n=i;
	for(i=0;i<n;i++)
	{
		l[i]=strlen(substr[i]);
		for(j=1;j<l[i];j++)
			if(substr[i][j]>substr[i][m[i]])
				m[i]=j;
		for(j=l[i]-1;j>m[i];j--)
			substr[i][j+3]=substr[i][j];
		substr[i][m[i]+1]=str[i][0];
		substr[i][m[i]+2]=str[i][1];
		substr[i][m[i]+3]=str[i][2];
		printf("%s\n",substr[i]);
	}
}
int main(int argc, char* argv[])
{
	


char str[11],substr[4],max;
int m,n,i,j,z,t,temp=0;
while(scanf("%s%s",str,substr)!=EOF)
{
      m=strlen(str);
      n=strlen(substr);
      max=str[0];
      
      for(i=0;i<m;i++)
	  {
		  if(str[i+1]>max)
		  {
			  max=str[i+1];
			  temp=i+1;
		  }
	  }
	  for(j=0;j<=temp;j++)
	  {
		  printf("%c",str[j]);
	  }
	  for(z=0;z<n;z++)
	  {
		  printf("%c",substr[z]);
	  }
	  for(t=temp+1;t<m;t++)
	  {
		  printf("%c",str[t]);
	  }
	  printf("\n");
}
return 0;
}
int f(char *p);
void main()
{
for(;;)
{char a[11],b[4];
int n,i;
scanf("%s",a);
scanf("%s",b);
if(a[0]=='\0')
break;
n=f(a);
for(i=0;i<=n;i++)
printf("%c",*(a+i));
for(i=0;i<=2;i++)
printf("%c",*(b+i));
for(i=n+1;*(a+i)!='\0';i++)
printf("%c",*(a+i));
printf("\n");
a[0]='\0';

}


}

int f(char *p)
{int i,max=0,t;
	for(i=0;*(p+i)!='\0';i++)
	{if(*(p+i)>max)
	{max=*(p+i);
	 t=i;
	}
	}
return t;

}
int main()
{
	int i, j, max = 0;
	char str[11], substr[4], maxx = 0;
	char zong[20];
	while (scanf("%s%s", str, substr) != EOF)
	{
		max = 0;
		maxx = 0;
		j = 0;
		for (i = 0; i <= strlen(str) - 1; i++)
		{
			if (str[i] > maxx)
			{
				max = i;
				maxx = str[i];
			}
		}
		for (i = 0; i <= max; i++)
		{
			zong[j++] = str[i];
		}
		for (i = 0; i <= 2; i++)
		{
			zong[j++] = substr[i];
		}
		for (i = max + 1; i <= strlen(str) - 1; i++)
		{
			zong[j++] = str[i];
		}
		zong[j] = '\0';
		printf("%s\n", zong);
	}
}
void main()
{
	char *index,*i;
	int max;
	char str1[100],str2[5];
	while(scanf("%s%s",&str1,&str2)!=EOF)
	{
		max=0;
		for(i=str1;*i!='\0';i++)
			if(*i>max) max=*i,index=i;
		for(i=str1;i<=index;i++)
			printf("%c",*i);
		printf("%s",str2);
		for(i=index+1;*i!='\0';i++)
			printf("%c",*i);
		printf("\n");
	}

}
void main()
{
	char str[13],substr[3];
	int s,i,j,p;
	while(scanf("%s %s",str,substr)!=EOF)
	{
	s=strlen(str);
	p=0;
	for(i=0;i<=s-1;i++)
		if(str[i]>str[p])
              p=i;
    for (i=s;i>=p+1;i--)
        str[i+3]=str[i];
	for(i=p+1,j=0;j<=2;i++,j++)
		str[i]=substr[j];
	str[s+3]='\0';
    printf("%s\n",str);
	}
}
int main()
{char str[20],sub[10];
 int max,i,j;
 while(scanf("%s%s",str,sub)!=EOF)
  {
    j=strlen(str);max=0;
    for(i=1;str[i];i++)
    if(str[i]>str[max])max=i;
    for(i=j;i>max;i--)
    str[i+3]=str[i];
    for(i=0;i<3;i++)
    str[max+i+1]=sub[i];
    printf("%s\n",str);
  } 
}