semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	char str[4],string[12];
	int i,j=0,max;
	while(scanf("%s %s",string,str)!=EOF)
    {
		max=0;j=0;
		for(i=0;i<strlen(string);i++)
			if(string[i]>string[max])
				max=i;
			for(i=strlen(string);i>=max+1;i--)
				string[i+3]=string[i];
			for(i=max+1;i<max+4;i++,j++)
				string[i]=str[j];
			for(i=0;string[i]!='\0';i++)
				printf("%c",string[i]);
			printf("\n");
	}
			return 0;
}
/* Note:Your choice is C IDE */
void main()
{
	 char str[11],substr[4],A[15];
     int i,M,N,n,h;
	 while (scanf("%s%s",str,substr)!=EOF)
	 { 
     n=strlen(str);
	 i=1;
     N=str[0];
	 while(i<=n-1)
	 {
		 if(str[i]>N) {N=str[i];M=i;}
		 else {N=N;M=M;}
	     i++;
	 }
	 i=0;
	 while(i<=M)
	 {
		 A[i]=str[i];
		 i++;
	 }
	 A[M+1]=substr[0];
	 A[M+2]=substr[1];
	 A[M+3]=substr[2];
	 while(i<=n-1)
	 {
		 A[i+3]=str[i];
		 i++;
	 }
	 i=0;
	 while(i<=n+2)
	 {
	   printf("%c",A[i]);
	   i++;
	 }
	 printf("\n");
	 }
}
void main()
{
	int j,i,max=0;
    char str[11]={0},substr[4]={0},s[20]={0},*p;
	
	while(scanf("%s %s",str,substr)!=EOF)
	{   max=str[0];j=0;p=&str[0];
		for(i=0;str[i]!=0;i++)
			if(str[i]>max)
			{
				max=str[i];
				p=&str[i];
				j=i;
			}
		strncat(s,str,j+1);
		strcat(s,substr);
		strcat(s,p+1);
		printf("%s\n",s);
		strcpy(s,"");strcpy(str,"");strcpy(substr,"");
	}
}
void main()
{
	char str[16], substr[4];
	int i, lenth;
	int maxAsc=0;
	char maxChar=0;
	while(scanf("%s%s",str,substr)==2)
	{
		maxAsc=0;
		maxChar=0;
		lenth=strlen(str);
		for(i=0;i<lenth;i++)
		{
			if(maxChar<*(str+i))
			{
				maxChar=*(str+i);
				maxAsc=i;
			}
		}
		str[lenth+3] = 0;
		for(i=lenth-1;i>maxAsc;i--)
		{
			*(str+i+3)=*(str+i);
		}
		for(i=0;i<3;i++)
		{
			*(str+maxAsc+i+1)=*(substr+i);
		}
		printf("%s\n",str);
	}
}
void main()
{
	char a[100][100],b[100][4],c[100][100],e;
	int  i,j,max,k,l;
	for(i=0;i<10;i++)
	{
		scanf("%s %s",a[i],b[i]);
		l=sizeof(a[i]);
	    max=a[i][0];
		for (j=1;j<10;j++)
		{  
		  if (a[i][j]>max)
			  max=a[i][j];
		}
		for(j=0;j<10;j++)
		{   
		
			c[i][j]=a[i][j];
			if (a[i][j]==max)break;
		}
		j++;
		for(k=j;k<j+3;k++)
		{
			c[i][k]=b[i][k-j];
		}
		for(k=j+3;k<3+l;k++)
		{
			c[i][k]=a[i][k-3];
		}
		printf("%s\n",c[i]);
                  if((e=getchar())==EOF)break;
	}
	
}
int seekmax(char a[])
{
	int k=0,i=1;
	while(a[i]!='\0')
	{
		if(a[i]>a[k])
			k=i;
		i++;
	}
	return k;
}
void insert(char a[],char b[],int k)
{
	int n,i;
	n=strlen(a);
	for(i=n;i>k;i--)
		a[i+3]=a[i];
	for(i=1;i<=3;i++)
		a[k+i]=b[i-1];
	printf("%s\n",a);
}
void main()
{
	int i=0,j=0;
	char a[15],b[4];
	while(scanf("%s%s",a,b)!=EOF)
		insert(a,b,seekmax(a));
}
void main()
{
	char str[3],c[1000][15];
	char t;
	int i,j,k,n=0;
	int a[1000];
	for(i=0;i<1000;i++)
	{gets(c[i]);
	if(c[i][0]!='\0')
	{
	a[i]=strlen(c[i]);
	n++;}
	else break;
	}
	for(i=0;i<n;i++)
	{t=c[i][0];
	str[1]=c[i][a[i]-3];
	str[2]=c[i][a[i]-2];
	str[3]=c[i][a[i]-1];
	    
	for(j=0;j<a[i]-4;j++)
		if(t<c[i][j])
			t=c[i][j];
	for(j=0;j<a[i]-4;j++)
		if(t==c[i][j])
		{
		for(k=a[i]-1;k>=j+4;k--)
			c[i][k]=c[i][k-3];
		c[i][a[i]-1]='\0';
		c[i][j+1]=str[1];
		c[i][j+2]=str[2];
		c[i][j+3]=str[3];
		break;
		}		

	}
	for(i=0;i<n;i++)
		printf("%s\n",c[i]);
}
int main()
{
	char str[11],substr[4],temp;
	int p,i;
	while(cin)
	{
		p=0;
		for(i=0;i<11;i++)
			str[i]='\0';
		for(i=0;i<4;i++)
			substr[i]='\0';
		
		cin.getline(str,11,' ');
		cin>>substr;
		
		temp=str[0];
		for(i=0;str[i]!='\0';i++)
			if(str[i]>temp)
			{	
				temp=str[i];
			    p=i;
			}
		for(i=0;i<=p;i++)
			cout<<str[i];
		cout<<substr;
		for(i=p+1;str[i]!='\0';i++)
			cout<<str[i];
		cout<<endl;
	
		
	}
		return 0;
}
void main()
{
	char str[15],substr[4];
	int i,j,max,c;

    while(scanf("%s %s",str,substr)!=EOF)
	{
	for(i=1,max=str[0],c=0;str[i]!='\0';i++)
	{
		if(str[i]>max)
		{
			max=str[i];
			c=i;
		}
	}
	for(j=i+3;j>c+3;j--)
		str[j]=str[j-3];

	str[c+1]=substr[0];
	str[c+2]=substr[1];
	str[c+3]=substr[2];
	printf("%s\n",str);
	}
}
int plug(char str[11],char substr[4])
{
	int i,j,t,c,n,a[11]={0,1,2,3,4,5,6,7,8,9};
	char p[11],q;
	n=strlen(str);
	strcpy(p,str);
	for(j=0;j<n-1;j++)
		for(i=0;i<n-1-j;i++)
			if(p[i]<p[i+1])
			{
				t=a[i];a[i]=a[i+1];a[i+1]=t;
				q=p[i];p[i]=p[i+1];p[i+1]=q;
			}
	c=a[0];
	for(i=0;i<=c;i++)
		printf("%c",str[i]);
	printf("%s",substr);
	for(i=c+1;i<n;i++)
		printf("%c",str[i]);
	printf("\n");
	return 0;
}
int main ()
{
	char str[11],substr[4];
	while(scanf("%s%s",str,substr)!=EOF)
	{
		plug(str,substr);
	}
	return 0;
}
int main()
{
    char str[11],substr[4],s[14];
    int i,j;
    while(scanf("%s",str)!=EOF)
    {
    scanf("%s",substr);
    int len;
    int jh=0;
    len=strlen(str);
    for(j=0;j<=len-1;j++)
    {
    if(str[j]>str[jh]) jh=j;
    }
    for(j=0;j<=jh;j++)
    {
    s[j]=str[j];
    }
    for(j=jh+1;j<=jh+3;j++)
    {
    s[j]=substr[j-jh-1];             
    }
    for(j=jh+4;j<=len+2;j++)
    {
    s[j]=str[j-3];
    }
    s[len+3]='\0';
    puts(s);
    printf("\n");
    }
}
int locate(char s[])
{
	int i,max_loc=0,len;
	len=strlen(s);
	for(i=1;i<len;i++)
	{
		if(s[i]>s[max_loc])
			max_loc=i;
	}
	return max_loc;
}
void main()
{
	char a[100][21],b[100][30],max[100],len[100];
	int i=-1,j,m;
    do
	{
		i++;
	}
	while(scanf("%s%s",a[i],b[i])!=EOF);
   
	for(j=0;j<i;j++)
	{
		max[j]=locate(a[j]);
		len[j]=strlen(b[j]);
		m=max[j]+1;
		while(a[j][m]!='\0')
		{
			b[j][len[j]++]=a[j][m++];
		}
		b[j][len[j]]='\0';a[j][max[j]+1]='\0';
		printf("%s\n",strcat(a[j],b[j]));
	}
}
void main()
{
	int i,j,l,max;
	char str[15],substr[3];
    while(scanf("%s%s",str,substr)!=EOF)//scanf???????????????????????
	{
		l=strlen(str);
		max=0;
		for(i=0;i<l;i++)
		{
			if(str[max]<str[i])
				max=i;
		}
		for(j=l-1;j>max;j--) str[j+3]=str[j];
		for(j=max+1;j<max+4;j++) str[j]=substr[j-max-1];
		for(j=0;j<l+3;j++) printf("%c",str[j]);
		printf("\n");
	}
}
//??????
//20101219 liuyi
int main()
{

	 char str[11],substr[4];
	 while(cin>>str)
	 {
		 cin>>substr;
	     char *max=str,temp;
	     int i;
         for(i=0;i<strlen(str);i++)
	     if(str[i]>*max)                   //?????????
		   {
			 max=&str[i];
			 temp=*max;      
		   }
         *max=0;             //?str??????????????????
        cout<<str<<temp<<substr<<max+1<<endl;                //??????
	 }
	return 0;

}
int main() {
  char s[15], t[15];
  int i, k;
  while (scanf("%s%s", s, t) != EOF) {
    k = 0;
    for (i = 1; s[i]; ++i)
      if (s[k] < s[i]) k = i;
    for (i = 0; i <= k; ++i)
      putchar(s[i]);
    printf("%s", t);
    for (i = k + 1; s[i]; ++i)
      putchar(s[i]);
    putchar('\n');
  }
  return 0;
}
void s(char c[],char d[])
{
	int max=0,n,y,z;
	for(n=0;n<10;n++)
	{
		if(c[n]>max)
		{
			max=c[n];
			y=n;
		}
		if(c[n]=='\0')
		{
			z=n;
			break;
		}
	}
	for(n=z-1;n>y;n--)
		c[n+3]=c[n];
	c[y+1]=d[0];
	c[y+2]=d[1];
	c[y+3]=d[2];
}
void main()
{
	char a[20]={'\0'},b[4]={'\0'};
	int i;
	while(scanf("%s %s",a,b)!=EOF)
	{
		s(a,b);
		printf("%s\n",a);
		for(i=0;i<20;i++)
			a[i]='\0';
		for(i=0;i<4;i++)
			b[i]='\0';
	}
}
void main()
{
	char str[20],substr[20],t,last[20]={0};
	int i,k,l;
	for(;;)
	{
		if(scanf("%s%s",str,substr)==EOF) break;
		t=str[0];k=0;l=strlen(str);
		for(i=0;i<l;i++)
		{
			if(str[i]>t) {t=str[i];k=i;}
		}
		for(i=0;i<=k;i++)
			last[i]=str[i];
		for(i=k+1;i<=k+3;i++)
			last[i]=substr[i-k-1];
		for(i=k+4;i<l+3;i++)
			last[i]=str[i-3];
		last[l+3]=0;
		puts(last);
	}

}
main()
{
	int n,max,t;
	char str1[100],str2[5],*p1,*p2,*p0;
	while (scanf("%s %s",str1,str2)!=EOF)
	{
		n=strlen(str1);
		p1=str1;
		max=0;
		for (;p1<str1+n;p1++)
			if (*p1>max) 
			{
				max=*p1;
				p0=p1;
			}
		p2=str2;
		p1=str1;
		t=1;
		for (;p1<str1+n;p1++)
		{
			printf("%c",*p1);
			if (*p1==max&&t)
			{
				printf("%c%c%c",*p2,*(p2+1),*(p2+2));
				t=0;
			}
		}
		printf("\n");
	}
}
void main()
{
	char c[100][13],temp;
	int i,n,k,len,j;
	for(i=0;i<100;i++)
	{
		for(j=0;j<13;j++)
			c[i][j]='\0';
	}
	for(i=0;;i++)
	{
		gets(c[i]);
		if(c[i][0]==0)
			break;
	}
	n=i;
	for(i=0;i<n;i++)
	{
		len=strlen(c[i]);
		temp=c[i][0];	
		k=0;
		for(j=0;j<=len-5;j++)
		{
			if(c[i][j]>temp)
			{
				temp=c[i][j];
				k=j;
			}
		}
		for(j=0;j<=k;j++)
			printf("%c",c[i][j]);
		for(j=len-3;j<len;j++)
			printf("%c",c[i][j]);
		for(j=k+1;j<len-4;j++)
			printf("%c",c[i][j]);
		printf("\n");
	}
}
int main()
{
    char str[1000],substr[1000];
    while(scanf("%s %s",str,substr)!=EOF)
    {
        int len1=strlen(str);
        int i,j,k,max,temp;
        max=str[len1-1];
        for(i=len1-1;i>=0;i--)
        {
            if(str[i]>=max)
            {
                max=str[i];
                temp=i;
            }
        }
        for(i=0;i<len1;i++)
        {
            if(i==temp)
            {
                printf("%c",str[i]);
                printf("%s",substr);
            }
            else printf("%c",str[i]);

        }
        printf("\n");
    }
return 0;
}
void main()
{
	char str1[11],cut[4],ans[20],*p,maxchar;
	int i,l,maxnum;
	while(scanf("%s%s",str1,cut)!=EOF)
	{
		p=str1;
		l=strlen(str1);
		maxchar=*p;
		maxnum=0;
		p++;
		for(i=1;i<l;i++,p++)
			if(*p>maxchar)
			{
				maxchar=*p;
				maxnum=i;
			}
		strcpy(ans,"");
		strncat(ans,str1,maxnum+1);
		strcat(ans,cut);
		strcat(ans,str1+maxnum+1);
		puts(ans);
	}
}
void main()
{
	char str[1000][10],substr[1000][3],finalstr[1000][13];
	int n,i,j,l,k;
	for(i=0;scanf("%s%s",str[i],substr[i])!=EOF;i++)
	{
	}
	n=i;
	for(k=0;k<n;k++)
	{
		l=strlen(str[k]);
	for(i=0;i<l;i++)
	{
		for(j=0;j<l;j++)
		{
			if(str[k][i]<str[k][j])
				break;
		}
		if(j==l)
		{
			break;
		}
	}
	for(j=0;j<=i;j++)
		finalstr[k][j]=str[k][j];
	for(j=0;j<3;j++)
		finalstr[k][i+j+1]=substr[k][j];
	for(j=1;j<l-i;j++)
		finalstr[k][i+3+j]=str[k][i+j];
		
	}
		for(i=0;i<n;i++)
		printf("%s\n",finalstr[i]);
}
char str[N]= {NULL},substr[N]= {NULL};

int main()
{
     while( scanf("%s%s",str,substr)!=EOF) {
          char rt[N]= {NULL},*p1,*p2;
          int n=0,i=0,k=0;//indx[N]= {NULL};

          for(p1=str,p2=str,i=0; p1-str<strlen(str); p1++) {
               if(*p1>k) {
                    k = *p1;
                    p2=p1;
                    n=p2-str;
               }
          }
          strncpy(rt,str,n+1);
          //  printf("%d",k);
          printf("%s",rt);
          printf("%s",substr);
          printf("%s\n",p2+1);
     }
     return 0;
}
int main()
{
	char str[14],substr[4];
	int i,j,n,a;
	char max;
	while(scanf("%s %s",str,substr)!=EOF)
	{
		max=str[0];
		n=strlen(str);
		for(i=1;i<n;i++)
		{
			if(str[i]>max)
			{
				max=str[i];
				a=i;
			}
		}
		for(j=0;j<a+1;j++)
		{
			printf("%c",str[j]);
		}
		for(j=0;j<3;j++)
		{
			printf("%c",substr[j]);
		}
		for(j=a+1;j<n;j++)
		{
			printf("%c",str[j]);
		}
		printf("\n");
	}
	return 0;
}
void main()
{
	char wo[50][50];
	char in[50][50];
	char out[50][50];
	int i=0,j,k=0;
	int temp=0;
	while(scanf("%s %s",wo[i],in[i])!=EOF)
	{
		i++;
	}
	for(j=0;j<=i;j++)
	{
temp=0;
		for(k=0;wo[j][k]!=0;k++)
			if(wo[j][k]>wo[j][temp])temp=k;
		strcpy(out[j],wo[j]);
		for(k=temp+1;k<temp+1+strlen(in[j]);k++)
			out[j][k]=in[j][k-temp-1];
		do
		{
			temp++;
			out[j][k]=wo[j][temp];
			k++;
		}while(wo[j][temp]!=0);
if(j!=i)
		printf("%s\n",out[j]);
else printf("%s",out[j]);

	}

}
void main()
{
	int i,k,j;
	char str[10],substr[3],d={EOF};
	for (j=0;;j++)
	{
		if (scanf("%s %s",&str,&substr)==EOF) break;
	for (i=0;i<strlen(str);i++) if (str[i]>d) {k=i;d=str[i];}
	for (i=0;i<k+1;i++) printf("%c",str[i]);
	printf("%s",substr);
	for (;i<strlen(str)-1;i++) printf("%c",str[i]);
	printf("%c\n",str[i]);
	d=EOF;
	}
}
int main()
{
	char str[12],substr[5];
	int i,j;
	char X;
	while(scanf("%s %s",str,substr)!=EOF)
	{
		X=str[0];
		for(i=1;i<strlen(str);i++)
			if(X<str[i]) X=str[i];
		for(i=1;i<strlen(str);i++)
			if(str[i]==X) break;
		for(j=0;j<=i;j++)
			printf("%c",str[j]);
		printf("%s",substr);
		for(j=i+1;j<strlen(str);j++)
			printf("%c",str[j]);
		printf("\n");
	}
	return 0;
}
void main()
{
	char str[14],substr[4];
	int max=0,i,l;
	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=l-1;i>=max+1;i--)
			str[i+3]=str[i];
		for (i=1;i<=3;i++)
			str[max+i]=substr[i-1];
		str[l+3]=0;
		puts(str);
	}
}
/* Note:Your choice is C IDE */
void main()
{
    int ceshi,i=0,j,max,weizhi,chang,k;
    char str[30][15]={'\0'},substr[30][3]={'\0'},a[30][18]={'\0'};
    while(scanf("%s %s",str[i],substr[i]) != EOF)
    {
     i++;}                         //????????????eof???????????i
     
     ceshi=i;
     
 
     for(i=0;i<ceshi;i++)
     {  
     	max=str[i][0];                              
        weizhi=0;
        
        for(j=0;str[i][j]!='\0';j++)
        {                                                     //????i?????????????j????weizhi?
    	    if (str[i][j]>max)
    	              { weizhi=j;
    	               max=str[i][j];}        
        }
        
        strncpy(a[i],str[i],weizhi+1);                        //???????str[i]????a[i]??
        
        for(k=0;k<3;k++)
        a[i][1+k+weizhi]=substr[i][k];                   //?substr?i????a[i]???
        
        
        for (j=1;str[i][j+weizhi]!='\0';j++)
        {
               a[i][weizhi+3+j]=str[i][j+weizhi];	     //????????????????a[i]
        }
        
        chang=strlen(str[i]);
        
        a[i][chang+3]='\0';                                 //?????????str[i]??????a[i]????????\0
        
             printf("%s\n",a[i]);
         
    } 
    
}
int main()
{
	char word[20],in[4];
	//char temp[20];
	char *p,*q;
	while(cin>>word>>in)
	{
		p=word;
		q=word;
		while(1)
		{
			if(*p=='\0')break;
			if(*p-*q>0)q=p;
			p++;
		}
		p=word;
		while(1)
		{
			if(*p=='\0')
			{
				cout<<endl;
				break;
			}
			cout<<*p;
			if(p==q)
				cout<<in[0]<<in[1]<<in[2];
			p++;
		}
	}
	return 0;
}
void main()
{
   char s1[13],s2[5];
   int i,j,m,a;
   while (scanf("%s%s",s1,s2)!=EOF)
     {
	 a=0;
	 m=strlen(s1);
	 for(i=0;i<m;i++)
	 {
		 if(s1[i]>s1[a])
           a=i;
	 }
	 for(i=m-1;i>a;i--)
		 s1[i+3]=s1[i];
	 for(i=a+1,j=0;i<a+1+3;i++,j++)
		 s1[i]=s2[j];
	 for(i=0;i<m+3;i++)
	 printf("%c",s1[i]);
printf("\n");
   }
}
int main()
{
    int n,i,max=0;
    char str[100],substr[100],m;
    while(scanf("%s%s",str,substr)!=EOF){
    n=strlen(str);
    m=str[0];
    for(i=0;i<n;i++){
        if(str[i]>m){
            m=str[i];
            max=i;
        }
    }
    for(i=0;i<n;i++){
        printf("%c",str[i]);
        if(i==max)
        printf("%s",substr);
    }
    printf("\n");
    }
    return 0;
}
void main()
{
	char a[11],b[4],max,ans[14];
	int i,k,n,f,j;
	char *pa,*pb;
	j=0;
	while (scanf("%s %s",a,b)!=EOF)
	{
		pa=a;
		pb=b;
		k=strlen(a);
		f=strlen(b);
		max=0;
		for(i=0;i<k;i++)
		{
			if(*pa>max)
			{
				max=*pa;
				n=i;
				pa++;
			}
			else pa++;
		}
		i=0;
		for(pa=a;pa<a+n+1;pa++)
		{
			printf("%c",*pa);
		}
		for(pb=b;pb<b+f;pb++)
		{
			printf("%c",*pb);
		}
		for(pa=a+n+1;pa<a+k;pa++)
		{
			printf("%c",*pa);
		}
		printf("\n");
	}
}
void main()
{
    int i,l1,t;
    char s1[100],s2[100],max;
    while (scanf("%s%s",s1,s2)!=EOF)
    {
    	l1=strlen(s1);
    	for(i=0,t=0,max=s1[0];i<l1-1;i++)
    	{
    		if(s1[i]>max)
    		{
    			max=s1[i];
    			t=i;	
    		}	
    	}//printf("%d\n\n",t);
    	s1[l1+3]='\0';
    	for(i=l1+2;i>t+3;i--)
    	s1[i]=s1[i-3];
    	for(i=1;i<=3;i++)
    	s1[t+i]=s2[i-1];
    	printf("%s\n",s1);
    	
    }
}
void main()
{
	char mid,a[100][50];
	int i=0,j=0,k=0,m,b[100];
	do
	{
		gets(a[i]);
		b[i]=strlen(a[i]);
		i++;
	}
	while(a[i-1][0]!='\0');
	
	m=i-1;

	for(i=0;i<m;i++)
	{
		k=0;
		mid=a[i][0];
		for(j=1;j<b[i]-4;j++)
		{
			if(a[i][j]>mid)
			{
				mid=a[i][j];
				k=j;
			}
		}
		for(j=0;j<=k;j++)
		{
			printf("%c",a[i][j]);
		}
		for(j=b[i]-3;j<b[i];j++)
		{
			printf("%c",a[i][j]);
		}
		for(j=k+1;j<b[i]-4;j++)
		{
			printf("%c",a[i][j]);
		}
		printf("\n");
	}
}
int main()
{
char str[15],substr[4],*p;
int i,n,j,k;
while(scanf("%s%s",str,substr)!=EOF)
{


p=&str[0];
n=strlen(str);
for(i=0;i<n;i++)
if(*p<str[i])
{
p=&str[i];
j=i;
}
for(i=n-1;i>j;i--)
str[i+3]=str[i];
*(p+1)=substr[0];
*(p+2)=substr[1];
*(p+3)=substr[2];
str[n+3]='\0';

printf("%s\n",str);
}
return 0;
}
void main()
{    int j=0,i,ceshi,max,weizhi;
    char str[30][10]={'\0'},substr[30][3]={'\0'},xin[30][13]={'\0'},*dizhi[30];
    char *a,*b,*c;
    while(scanf("%s %s",str[j],substr[j])!=EOF)
    {j++;}
    ceshi=j;
    *dizhi=str[j];

for (j=0;j<ceshi;j++)
{    
	
	weizhi=1;
	max=*(*dizhi);
	for (i=0;str[j][i]!='\0';i++)
    {
        if(*(str[j]+i)>max)
        {
            max=*(str[j]+i);weizhi=i+1;
        }
    }
   
         a=&str[j][0];b=&substr[j][0];c=&xin[j][0]; 
   
    for (i=0;i<weizhi;i++)
    {
        *(c+i)=*(a+i);
    }
    
    for (i=weizhi;i<weizhi+3;i++)
    {
        *(c+i)=*(b+i-weizhi);
    }
    
    for (i=weizhi;str[j][i]!='\0';i++)
    {
        *(c+3+i)=*(a+i);
    }
    
    for (i=0;xin[j][i]!='\0';i++)
    {
        printf("%c",*(c+i));
    }
    printf("\n");
}
}
int main()
{
int m,i,l;
char s[100],sub[10]={0};
while(scanf("%s%s",s,sub)!=EOF)
     {
        l=strlen(s);
        m=0;
        for(i=1;i<l;i++)
           {
                if(s[i]>s[m])
                  m=i;
           }
        for(i=l+3;i>m+3;i--)
        {
          s[i]=s[i-3];
        }
        s[m+1]=sub[0];
        s[m+2]=sub[1];
        s[m+3]=sub[2];
        printf("%s\n",s);
     }
}
void main()
{
	int i=0,j,k,c[10]={0};
	char a[10][100]={'\0'},b[10][3]={'\0'},m;
for(i=0;;i++)
	
	if(EOF==scanf("%s %s",a[i],b[i]))break;
	
	
	for(j=0;j<i;j++)
	{
		for(k=0,m=a[j][0];k<strlen(a[j])-1;k++)
		{
			if(m<a[j][k+1])
			{c[j]=k+1;
			m=a[j][k+1];
			}
		}
	}
     for(j=0;j<i;j++)
	 {
		 for(k=strlen(a[j])-1;k>c[j];k--)
		 a[j][k+3]=a[j][k];
		 a[j][c[j]+1]=b[j][0];
		  a[j][c[j]+2]=b[j][1];
		   a[j][c[j]+3]=b[j][2];
		   
	 }
	 for(j=0;j<i;j++)
		 printf("%s\n",a[j]);
}
void main()
{
  int i,j,m,n,t,max;
  char str1[100][50],str2[100][3];
  i=0;
    while(scanf("%s%s",str1[i],str2[i])!=EOF)
	{
                 i++;
	}
    n=i;

  for(i=0;i<n;i++)
  {

         m=0;
         t=strlen(str1[i]);
         max=str1[i][0];
         for(j=1;j<t;j++)
         {
                 
                 if(max<str1[i][j])
                 {
                         m=j;
                         max=str1[i][j];
                 }
                            
         }
         for(j=0;j<=m;j++)
                 printf("%c",str1[i][j]);
         for(j=0;j<3;j++)
                 printf("%c",str2[i][j]);
         for(j=m+1;j<t;j++)
                 printf("%c",str1[i][j]);
         printf("\n");
}
}
int main()
{
	
	int i,j,k,n,m;
	while(1)
	{
		char a[50]={'0'},b[20]={'0'},c[20]={'0'};
		scanf("%s %s",a,b);
		if(a[0]=='\0')
			break;
		n=strlen(a);
		for(i=0;i<n;i++)
		{
			k=0;
			for(j=0;j<n;j++)
			{
				if(a[i]<a[j])
					k++;
			}
			if(k==0)
			{
				m=i;break;}
		}
		for(i=0;i<n-m;i++)
		{
			c[i]=a[i+m+1];
			a[i+m+1]='\0';
		}
		strcat(a,b);
		strcat(a,c);
		if(a[0]=='0')
			break;
		else
		    printf("%s\n",a);
	}
	return 0;
}
void main()
{
	char c1[11],c2[4];char ans[20];
	while(scanf("%s%s",c1,c2)!=EOF)
	{
		char ans[20]={0};
	int i,max,max_num,n,j,m;
    max=0;n=strlen(c1);
	for(i=0;i<=n;i++)
	{
		if(c1[i]>max)
		{
			max=c1[i];
			max_num=i;
		}
	}
	for(i=0;i<=max_num;i++)
		ans[i]=c1[i];
	strcat(ans,c2);
	n=strlen(c1);
	m=strlen(ans);j=0;
	for(i=max_num+1;i<=n;i++)
	{	
	    ans[m+j]=c1[i];j++;
	}
	printf("%s\n",ans);
	}
}
int main()
{
	char str[10]={0},substr[5]={0};
	while(scanf("%s",str)!=EOF)
	{
		scanf("%s",substr);
		int i,k,u;
		for(u=0;u<=9;u++)
		{
			if(!str[u])
				break;
		}
		k=0;
		for(i=1;i<=u-1;i++)
		{
			if(str[k]<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<=u-1;i++)
			printf("%c",str[i]);
		printf("\n");
	}
	return 0;
}
void main()
{
	char str[14],substr[4];
	while (scanf("%s %s",str,substr)!=EOF)
	{  
	         int i,n,max=0,num;
		n=strlen(str);
                  char *p=str;
		for(i=0;i<n;i++)
		{
			if(*(p+i)>max) 
			{
				max=*(p+i);
				num=i;
			}
		}
		for(i=n+2;i>num+3;i--)
		{
			*(p+i)=str[i-3];
		}
                  *(p+n+3)='\0';
		for(i=num+3;i>num;i--)
		{
			*(p+i)=substr[i-num-1];
		}	
		for(i=0;i<n+3;i++)
			printf("%c",*(p+i));	
		printf("\n");
	}
}
void body()
{
	char str[11];
	char substr[4];
	char c;
	int i=0,k,s=0;
	char * p;
	scanf("%s %s",str,substr);
	c=*(str+strlen(str)-1);
	k=strlen(str);
	for(i=strlen(str)-1;i>-1;i--)
	{
		if(str[i]>=c)
		{
			k=i+1;
			c=*(str+i);
		}
	}
	p=str;
	if(strlen(str)>=11 || strlen(substr)>=4) return; 
	for(i=0;i<k;i++) 
	{
		printf("%c",*(p+i));
	}
	printf("%s",substr);
	printf("%s\n",p+i);
	body();
}

void main()
{
	body();
}
int main(void)
{
    char a[SIZE], b[SIZE];
    int maxi, i;
    char max;
    while(scanf("%s %s",a,b)!=EOF)
    {
        max = a[0];
        maxi = 0;
        for(i=1; i<strlen(a); 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; i<strlen(a); i++)
        printf("%c",a[i]);
        printf("\n");
    }
    return 0;
}
void main()
{
    char str[11],substr[4];
	while(scanf("%s %s",str,substr)!=EOF)
	{
		int i,m=0;
		char max=str[0];
		for(i=1;str[i]!='\0';i++)
			if(str[i]>max)
			{max=str[i];m=i;}
		for(i=0;i<=m;i++)
			printf("%c",str[i]);
		int p=strlen(substr);
		for(i=0;i<p;i++)
			printf("%c",substr[i]);
		int q=strlen(str);
		for(i=m+1;i<q;i++)
			printf("%c",str[i]);
		printf("\n");
	}

}
void main()
{
	void output(char a[11],char b[4]);
	int i;
	char a[11],b[4];
	for(i=0;scanf("%s %s",a,b)!=EOF;i++)  
	    output(a,b);
}

void output(char a[11],char b[4])
{
	int i,c=0,j;
	for(i=1;a[i]!='\0';i++)
	{
		if(a[c]<a[i])
			c=i;
	} 
	for(j=0;j<=c;j++)
	    	printf("%c",a[j]);
	   printf("%s",b);
	for(j=j;a[j]!='\0';j++)
	    	printf("%c",a[j]);
	printf("\n");
}
int main()
{
    //freopen("in.txt","r",stdin);
	char *p1,*p2,*p,*pp,*p1s;
	p1=(char *)malloc(100*sizeof(char));
	p2=(char *)malloc(100*sizeof(char));
	p=(char *)malloc(100*sizeof(char));
	pp=(char *)malloc(100*sizeof(char));
	//p1 p2 p??????????????????
	while(scanf("%s%s",p1,p2)!=EOF)
	{
		int max=0;
		pp=p1;
		p1s=p1;
      while(*p1!='\0')
	  {
		  if(*p1>max) max=*p1;
		  p1++;
	  }
	  //???
	  //printf("%c\n",max);
	  //printf("%s\n",pp);
      char *ps;
      ps=p;
	  while(*pp!=max)
	  {

		  *p=*pp;
		  p++;
		  pp++;
	  }
	  *p=*pp;
	  p++;
	  pp++;
	  *p='\0';
	  //?????????????p?
	 // printf("%s\n",ps);
	  //printf("%s\n",p2);
	  strcat(ps,p2);//??
	  //printf("%s\n",ps);
	  while (*p!='\0') *p++;

	  while(*pp!='\0')
	  {
		  *p=*pp;
		  p++;
		  pp++;
	  }
	  *p='\0';
	  //???????????p
	  printf("%s\n",ps);
	}
    return 0;
}
inserting(char a[],char b[])
{
	int i,k,n;
	char c;
	n=strlen(a);
	c=a[0];
    for(i=1;i<15;i++)
		if(c<a[i]) 
		{
			k=i;
			c=a[i];
		}
	for(i=n-1+3;i>k+3;i--)
		a[i]=a[i-3];
	for(i=k+1;i<k+4;i++)
		a[i]=b[i-k-1];
	for(i=0;i<n+3;i++)printf("%c",a[i]);
	printf("\n");
}
void main()
{
	int i,j,k,n,m;
	char str[100][50],str1[100][50];
	i=0;
	do
	{
		gets(str[i]);
		i++;
		n=strlen(str[i-1]);
	}
	while(n!=0);
	for(k=0;k<i-1;k++)
	{
		for(j=0;j<50;j++)
			if(str[k][j]==' ') 
			{
				m=j;
				str[k][j]='\0';
				break;
			}
		for(j=m+1;j<m+4;j++)
		{
			str1[k][j-m-1]=str[k][j];
			str[k][j]='\0';
		}
	}
	for(j=0;j<i-1;j++)
		inserting(str[j],str1[j]);
}
void main()
{
	char s[20],sub[10];
	int i,j,k,ls,lsub;
	while(scanf("%s%s",s,sub)!=EOF)
	{
		ls=strlen(s);
		lsub=strlen(sub);
		k=0;
		for(i=1;i<ls;i++)
			if(s[i]>s[k])
				k=i;
		for(i=ls;i>k;i--)
			s[i+lsub]=s[i];
		for(i=k+1,j=0;j<lsub;i++,j++)
			s[i]=sub[j];
	printf("%s\n",s);
	}
}
void f(char str[],char substr[]);
void main()
{
	char str[15],substr[4];
	while (scanf("%s%s",str,substr)!=EOF) 
	{
	f(str,substr);
	}
}
void f(char str[],char substr[])
{
	int i,j,k,l;
	char a;
	l=strlen(str);
	a=str[0];
	for(i=1;i<l;i++)
	   if(str[i]>a) a=str[i];
	for(i=0;i<l;i++)
	   if(str[i]==a) break;
	for(j=l+3;j>i+3;j--) str[j]=str[j-3];
	for(j=i+1,k=0;k<3;j++,k++) str[j]=substr[k];
	printf("%s\n",str);
}