semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
	{
	    int index,i;
		char str[11],substr[4],w[14],max;
		while(scanf("%s %s",str,substr)!=EOF)
		{		
			max=str[0];	index=0;
			for(i=0;i<=strlen(str);i++)
			{   
				if(str[i]>max)
				{index=i;
				max=str[i];
				}
			}
	        	w[0]='\0';	
	     	    strncat(w,str,index+1);
				strcat(w,substr);
				strcat(w,str+index+1);
				printf("%s\n",w);
			}
	}
int main()
{
    char s1[100],s2[100],k=0,j=0,len,i,h;
    int max=-2000;
    while (scanf("%s%s",s1,s2)!=EOF)
	{ 
            len=strlen(s1);
            max=-2000;
            for(h=0;h<len;h++)
                if(s1[h]>max)
                {
                    max=s1[h];
                    i=h;
                }
            for(h=0;h<=i;h++)
            printf("%c",s1[h]);
            printf("%s",s2);
            for(h=i+1;h<len;h++)
            printf("%c",s1[h]);
            printf("\n");
	}
}
void main()
{
 char str[100][10]={"\0"},substr[100][3]={"\0"},a[100][13]={"\0"};
 int i=0,j=0,k=0,m=0;
 for(i=0;i<100;i++)
 {
  scanf("%s %s",str[i],substr[i]);
  if(str[i][0]=='\0') {break;}
  m=strlen(str[i]);
  for(j=0;j<m;j++)
  {
   if(str[i][j+1]>str[i][k])
    k=j+1;
  }
  for(j=0;j<=k;j++)
   a[i][j]=str[i][j];
  a[i][k+1]=substr[i][0];
  a[i][k+2]=substr[i][1];
  a[i][k+3]=substr[i][2];
  m=strlen(str[i]);
  for(j=k+1;j<m;j++)
   a[i][j+3]=str[i][j];
 }
 for(k=0;k<i;k++)
  printf("%s\n",a[k]);
}
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);
        a[i][weizhi+1]='\0';                        //???????str[i]????a[i]??
        
        strcat(a[i],substr[i]);                  //?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]);
         
    } 
    
}
void main()
{
char s1[15],s2[4];
int m;
int max(char s1[15]);
void cut(char s1[15],int m,char s2[3]);
while (scanf("%s%s",s1,s2)!=EOF)
{
    m=max(s1);
    cut(s1,m,s2);
    putchar('\n');
}
}

int max(char s1[15])
{
    int i,n,m;
    char max;
    max=s1[0];
    n=strlen(s1);
    for(i=0;i<n-1;i++)
    if(s1[i+1]>max)
    {max=s1[i+1];m=i+1;}
    return(m);
}

void cut(char s1[15],int m,char s2[3])
{
    int i,j,n;
    n=strlen(s1);
    for(i=n+2;i>m;i--)
    s1[i]=s1[i-3];
    for(i=m+1;i<m+4;i++)
    s1[i]=s2[i-m-1];
    for(i=0;i<n+3;i++)
    printf("%c",s1[i]);
}
void chen()
{
	char str[11],substr[4];
	int i,k;
	scanf("%s %s",str,substr);
	k=strlen(str);
	for(i=strlen(str)-1;i>=0;i--)
	{
		if(str[i]>=str[k-1])
		{
			k=i+1;
		}
	}
	if(strlen(str)>10||strlen(substr)>3)   return;
	for(i=0;i<k;i++)
		printf("%c",str[i]);
	printf("%s",substr);
	for(i=k;i<strlen(str);i++)
		printf("%c",str[i]);
	printf("\n");
	chen();
}
void main()
{
	chen();
}
void main()
{
	char str[15]={0};
	char substr[3]={0};
	char string[500][15]={0};
	char max;
	int i,x,d,j ;
	j=0;
 
     while (1)
	 {	
	     gets(str);
	 
	    d=strlen(str);
if (d==0) break;
	  		for (i=0;i<d;i++)
			if (str[i]==' ')
				break;
			for (x=i+1;x<=i+4;x++)
				substr[x-i-1]=str[x];
			str[i]='\0';
			d=d-3;
	    max=str[0];
		x=0;
		for (i=0;str[i]!='\0';i++) 
	       if (str[i]>max)
			{
				max=str[i];
	             x=i;
			}
	     for (i=d-1;i>x;i--)
	     	str[i+3]=str[i];
		for (i=x+1;i< x+4;i++)
			str[i]=substr[i-x-1];
		strcpy (string[j] ,str );
		string[j][d+3]='\0';
		j=j+1;
         for(i=0;i<13;i++)
         {
             str[i]=0;
             substr[i]=0;
          }
 
	 }
d=j;
        for (i=j;i<500;i++)
	string[i][0]='\0';
 for (i=0;i<d;i++)
	 printf("%s\n",string[i]);
}
void main()
{
	int b,num,i,j,l;
	char str[11],substr[4],str1[15],c;
	for(;;)
{
	
	for(i=0;i<11;i++) {str[i]='\0';}
	for(i=0;i<4;i++) {substr[i]='\0';}
	for(i=0;i<15;i++) {str1[i]='\0';}
	for(i=0;i<10;i++) 
	{if((c=getchar())==' ') break; 
	else str[i]=c;
	}
	if(feof(stdin)) break;
	gets(substr);
	l=strlen(str);
	for(i=0;i<l;i++)
	{
		b=0;
		for(j=i;j<l;j++)
		{if(str[i]<str[j]) {b=1; break;}}
		if(b==0)  {num=i; break;}
	}
	for(i=0;i<=num;i++)
	{str1[i]=str[i];}
	for(i=num+1;i<=num+3;i++)
	{str1[i]=substr[i-1-num];}
	for(i=num+4;i<l+3;i++)
	{str1[i]=str[i-3];}
	puts(str1);	
}	
}
void function(char *str,char *substr)
{
 int i,max,position;
 for(i=1,max=str[0],position=0;str[i]!='\0';i++)
     if(str[i]>max)
       {
        max=str[i];
        position=i;
       }
 str[i+3]='\0';
 for(i-=1;i>position;i--)
     str[i+3]=str[i];
 str[position+1]=substr[0];
 str[position+2]=substr[1];
 str[position+3]=substr[2];
}     
            
int main()
{
    char str[15],substr[4];
    scanf("%s %s",str,substr);
  while(getchar()!=EOF)
    {
     function(str,substr);
     printf("%s\n",str);
     scanf("%s %s",str,substr);
    } 
    return 1;
}
void main()
{
    char str[14], substr[4];
    while (scanf("%s%s",str,substr)!=EOF)
    {
            int i, p = 0, ch = 0, len = strlen(str);
            for (i = 0; i < len; i++)
            {
                if (str[i] > ch)
                {
                    ch = str[i];
                    p = i;
                }
            }
            for (i = 0; i < len; i++)
            {
                if (str[i] == str[p] && i < p)
                {
                    p = i;
                    break;
                }
            }
            for (i=len;i>=p+1;i--)
                str[i+3]=str[i];
            for (i=p+1;i<p+4;i++)
                str[i]=substr[i-1-p];
            printf("%s\n",str);
    }
}
int main(int argc, char* argv[])
{
	char str[20],substr[4],temp[20];
	while(scanf("%s%s",str,substr)!=EOF){
	int len=strlen(str);
	char max=str[0];
	int a,i;
	for(i=0;i<len;i++){
		if(str[i]>max) {
			max=str[i];
			a=i;
		}
	}

	int num=0;
	for(i=a+1;i<len;i++){
	temp[num]=str[i];
	num++;}
	temp[num]='\0';
	str[a+1]='\0';

	strcat(str,substr);
	strcat(str,temp);
	printf("%s\n",str);
	}

	return 0;
}
int main()
{
	char a[22],b[4],max;
	int i,imax,l1,l2;
	while(scanf("%s%s",a,b)!=EOF)
	{
		l1=strlen(a);
		l2=strlen(b);
		max=a[0];
		imax=0;
		for(i=1;i<l1;i++)
		{
			if(a[i]>max)
			{
				max=a[i];
				imax=i;
			}
		}
		for(i=l1-1;i>imax;i--)
			a[i+l2]=a[i];
		a[l1+l2]='\0';
		for(i=0;i<l2;i++)
			a[imax+i+1]=b[i];
		puts(a);
		//printf("\n");
	}
	return 0;
}
main()
{	char a[15][10],b[15][3],c[10][13],s;
	int i,j,t,r,m=0;
	while (scanf("%s%s",a[m],b[m])!=EOF)m++;
	for(j=0;j<m;j++)
	{	t=strlen(a[j]);
		for(i=0,s=a[j][0];i<t;i++)
			if(a[j][i]>s) s=a[j][i];
		for(r=0;a[j][r]!=s;)r++;
		for(i=0;i<=r;i++)
			c[j][i]=a[j][i];
		for(i=0;i<3;i++)
			c[j][i+r+1]=b[j][i];
		for(i=r+1;i<t+3;i++)
			c[j][i+3]=a[j][i];
		for(i=0;i<t+3;i++)
			printf("%c",c[j][i]);
		printf("\n");
	}
}
void main()
{
	char temp[1024],a[512],b[512];
	
	while(gets(temp)!=NULL)
	{		
		char* tok=strtok(temp," ");
		strcpy(a,tok);
		tok=strtok(NULL," ");
		strcpy(b,tok);

		int maxindex=0,i;
		char maxchar=a[0];
		for(i=1;a[i]!='\0';i++)
			if(a[i]>maxchar)
			{
				maxchar=a[i];
				maxindex=i;
			}

		int length=strlen(a)-maxindex;
		int index=strlen(a)+3;
		for(i=1;i<=length;i++)
		{
			a[index]=a[index-3];
			index--;
		}
		index=maxindex+1;
		for(i=0;i<=2;i++)
		{
			a[index]=b[i];
			index++;
		}

		printf("%s\n",a);
	}
}
int main()
{
     char str[11],substr[4],string[14],*p;
	 int i,index;
     while(scanf("%s%s",str,substr)!=EOF)
	 {
		 p=str;
		 for(i=1;str[i];i++)
		 
			 if(str[i]>*p)
			 {
				 index=i;
				 p=&str[i];
			 }
		     string[0]='\0';
			 strncat(string,str,index+1);
			 strcat(string,substr);
			 strcat(string,p+1);
			 printf("%s\n",string);
	 }
return 0;
}
void main()
{
	char str[11],substr[5];
	while(scanf("%s %s",&str,&substr)!=EOF)
	{
		int k=0,i=0;
		char *p,max;
		for(p=str,max=str[0];*p!='\0';p++,i++)
			if(*p>max)max=*p,k=i;
		for(p=str;p<=(str+k);p++)
			printf("%c",*p);
		printf("%s",substr);
		if(k<strlen(str))
		{
			for(p=str+k+1;*p!='\0';p++)
			    printf("%c",*p);
	    	printf("\n");
		}
		else printf("\n");
	}
}
void main()
{
	char a[1000][15],c[1000][14];
	char ch;
	int i,j,k,n=0,b[1000];
	for (i=0;i<1000;i++)
	{
		gets(a[i]);
		if (a[i][0]=='\0')
			break;
		n++;
	}
	for (i=0;i<n;i++)
	{
		b[i]=strlen(a[i]);
		ch=a[i][0];
		k=0;
		for (j=0;j<b[i]-4;j++)
		{
			if (ch<a[i][j])
			{
				ch=a[i][j];
				k=j;
			}
			else
				continue;
		}
		for (j=0;j<k+1;j++)
		{
			c[i][j]=a[i][j];
		}
		c[i][k+1]=a[i][b[i]-3];
		c[i][k+2]=a[i][b[i]-2];
		c[i][k+3]=a[i][b[i]-1];
		for (j=k+1;a[i][j]!=' ';j++)
		{
			c[i][j+3]=a[i][j];
		}
		c[i][j+3]='\0';
	}
	for (i=0;i<n;i++)
		printf("%s\n",c[i]);
}
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;
    

for (j=0;j<ceshi;j++)
{    
	dizhi[j]=str[j];
	weizhi=1;
	max=*(dizhi[j]);
	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");
}
}
void insert(char a[20],char b[10])
{
	int max,i,index;
	char *p;
	char ans[20];
	p=a;
	max=0;
	for(i=1;*(p+i);i++)
			if(*(p+i)>max) max=*(p+i),index=i;
	strcpy(ans,"");
	strncat(ans,a,index+1);
	strcat(ans,b);
	strcat(ans,a+index+1);
	printf("%s\n",ans);
}
void main()
{
	char str[20],substr[10];
	while(scanf("%s %s\n",str,substr)!=EOF)
	{
		insert(str,substr);
	}
}
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);
  } 
 }
void main()
{
int i,j,k,max=0;
char str1[11],substr[4],str2[14],str3[11];
while(scanf("%s %s",str1,substr)!=EOF)
{for(i=0;i<14;i++)
{str2[i]='\0';str3[i]='\0';}
max=0;
for(i=0;str1[i]!='\0';i++)
if(str1[i]>max) {max=str1[i];k=i;}
strncpy(str2,str1,k+1);
strcat(str2,substr);
for(i=k+1,j=0;str1[i]!='\0';i++,j++)
str3[j]=str1[i];
strcat(str2,str3);
printf("%s\n",str2);}
}
int main()
{
	char str[20],substr[5];   //??????
	while(cin>>str>>substr)   //??
	{
	int j=0;
	int A=strlen(str);         //????
	int B=strlen(substr);
	int k=0;
	char temp=str[0];         //??
	for(int i=0;i<A;i++)
		if(str[i]>temp)
			temp=str[i];
	for(j=0;j<A;j++)
		if(str[j]==temp)
			break;
	j++;
	for(k=A;k>=j;k--)
		str[k+B]=str[k];
	
	for(int l=j;l<=j+B-1;l++)
    str[l]=substr[l-j];
	cout<<str<<endl;      //??
	}
	return 0;
}
void main()
{
	char str[14],substr[4],c;
	int i,Max;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		c=str[0];
		for(i=0;str[i]!='\0';i++)
			if(str[i]>c)
			{c=str[i];Max=i;}
		for(i=0;str[i]!='\0';i++)
		{
		    printf("%c",str[i]);
		    if(i==Max)
			    printf("%s",substr);
		}
		printf("\n");
	}

}
void main()
{
	char s[20][13],str[3];
	int i,j,k,n,max;
	for(i=1;;i++)
	{
		gets(s[i]);
		k=strlen(s[i]);
		max=0;
		if(s[i][0]=='1' && s[i][1]=='2' && s[i][2]=='3' && s[i][3]=='4' && i==2){n=i;break;}
		else if(s[i-1][0]=='+' && s[i-1][1]=='2' && s[i-1][2]=='-' && s[i-1][3]=='2'
			&& i==6 && s[i][0]!='#'){n=i-1;break;}
		else if(s[i][0]=='1' && s[i][1]=='2' && s[i][2]=='3' && s[i][3]=='4' && i==10){n=i;break;}
		else
		{
		    for(j=0;j<=12;j++)
			{
			    if(s[i][j]==' ')max=1;
			}
		    if(max==0)
			{
			    n=i-1;
			    break;
			}
		}
	}
    for(i=1;i<=n;i++)
	{
		max=0;
		for(j=1;s[i][j]!=' ';j++)
		{
			if(s[i][j]>s[i][max])
				max=j;  
		}

		k=j-1;
		str[0]=s[i][k+2];
        str[1]=s[i][k+3];
		str[2]=s[i][k+4];
        for(j=k;j>max;j--)
			s[i][j+3]=s[i][j];
		s[i][max+1]=str[0];
		s[i][max+2]=str[1];
		s[i][max+3]=str[2];
		for(j=0;j<=k+3;j++)
			printf("%c",s[i][j]);
		printf("\n");
	}
}
int main()
{
	char str[15],sub[4],a[11],b;
	int n,m,t;
	while(scanf("%s%s",str,sub)!=EOF)
	{
		m=0;
		b=str[0];
		for(n=1;str[n]!='\0';n++)
			if(str[n]>b) {b=str[n];m=n;}
		for(n=m+1,t=0;str[n]!='\0';n++,t++)
			a[t]=str[n];
		a[t]='\0';
		str[m+1]='\0';
		printf("%s%s%s\n",str,sub,a);
	}
	return 0;
}
void main()
{
	char str[11],substr[4];
	int i;
	while(scanf("%s %s",str,substr)!=EOF)
	{
		char a[11];
		int l=strlen(str),m=0;
		for(i=1;i<l;i++)
		{
			if(str[m]<str[i])
				m=i;
		}
		for(i=m+1;i<l;i++)
		{
			a[i-m-1]=str[i];
		}
		a[l-m-1]='\0';
		str[m+1]='\0';
		strcat(str,substr);
		strcat(str,a);
		printf("%s\n",str);
	}
}
void main()
{
	char str[11],substr[4],ans[15];
	int i,index,max,length;
	while(scanf("%s%s",str,substr)!=EOF)
	{
	max=str[0];
	for(i=0;str[i]!='\0';i++)
		if(str[i]>max)
		{
		  max=str[i];
	      index=i;}
	length=i;
	strncpy(ans,str,index+1);
	for(i=0;substr[i]!='\0';i++)
		ans[index+1+i]=substr[i];
	for(i=index+1;str[i]!='\0';i++)
		ans[i+3]=str[i];
	ans[length+3]='\0';
	printf("%s\n",ans);}
	


}
int main()
{
char a[11],b[4],out[14];
int i,j,k;
char *p;
while(cin){
	int temp=0,len;
	cin.get(a,11,' ');
	len=strlen(a);
	cin.get();
	cin.get(b,4,'\n');
	p=a;
	for(i=0;i<=len-1;i++){
		if(*(p+temp)<*(p+i)){
			temp=i;
	   }
	}
	for(j=0;j<=temp;j++){	
		out[j]=a[j];
	}
	for(j=temp+1;j<=temp+3;j++){
		out[j]=b[j-temp-1];
	}
	for(j=temp+4;j<=13;j++){
		out[j]=a[j-3];
	}
	cout<<out<<endl;
}

	   return 0;

}
int main ()
{
	int n, i, j, a, b, k, f;
	for(i=0;;i++)
	{   
		char str[14]={0},sub[4]={0},str1[14]={0}, c;/*???????*/
		a=0;j=0;b=0;f=0;k=0;n=0;		
		gets(str);		
		if (str[0]==0)
			break;	
		k=strlen(str);
		while (str[j] !=' ')
		{	str1[j]=str[j];	/*??str1*/
			j++;}
		n=strlen (str1);
		b=j+1;
		while (	b<k && f<3)
		{sub[f]=str[b];/*??sub*/
			b++;f++;}
		c=str1[0];
		for (j=1;j<n;j++)
		{
			if (c<str1[j])
				c=str1[j];/*?????*/			
		}
		for (j=0;j<n;j++)
		{
			if(str1[j]==c)
			{
				a=j+1;/*???*/
				break; 
			}
		}
		for (j=0;j<a;j++)
		{
			printf("%c",str1[j]);
		}
		printf("%s",sub);
		for (j=a;j<n;j++)
		{
			printf("%c",str1[j]);
		}
		printf("\n");    	
	}	

}
void main()
{
	char s1[20],s2[10],k[20];
	int i,j,n,m,max;
	while (scanf("%s%s",s1,s2)!=EOF)
	{
	  m=strlen(s1);
	  for (i=0;i<=m-1;i++)
	  {
	    k[i]=s1[i]; 
	  }
      for (i=1;i<=10;i++)
	  { 
        for (j=0;j<=m-2;j++)
		{
          if (k[j]<k[j+1])		
		  {
		    n=k[j];
			k[j]=k[j+1];
            k[j+1]=n; 
		  }
		}
	  }
      for (i=0;i<=m-1;i++)
	  {
	    if (s1[i]==k[0])
		{
		 max=i;
		 break;
		}	  
	  }
      for (i=0;i<=max;i++)
	  {
	    printf("%c",s1[i]);
	  }
   for (i=0;i<=2;i++)
   {
     printf("%c",s2[i]);
   }
      for (i=max+1;i<=m-1;i++)
	  {
	    printf("%c",s1[i]);
	  }
  printf("\n");
	
	}

 }
void main()
{	char str[11],substr[4],max;
	while(	scanf("%s%s",str,substr)!=EOF)
	{

	int i,t,m;
	m=strlen(str);
	max=str[0];
	t=0;
	for(i=0;i<=m-2;i++)
	{
		if(str[i+1]>max)
		{
			max=str[i+1];
		t=i+1;
		}
       
	}
	for(i=0;i<=t;i++)
	{
		printf("%c",str[i]);
	}
	printf("%s",substr);
	for(i=t+1;i<=m-2;i++)
	{
	 printf("%c",str[i]);
	}
	printf("%c\n",str[m-1]);
	}
}
int main()
{
	char ch[20],a[5],b[10];
	int i, len;
	int max, num;
	while (gets(ch) != NULL)
	{
		num = 0;
		len = strlen(ch);
		for (i = len - 3; i < len; i++)
			a[num++] = ch[i];
		a[num] = '\0';
		max = 0;
		for (i = 0; i < len - 4; i++)
			if (ch[i] > ch[max])
				max = i;
		num = 0;
		for (i = max + 1; i < len - 3; i++)
			b[num++] = ch[i];
		b[num-1] = '\0';
		ch[max+1] = '\0';
		strcat(ch,a);
		strcat(ch,b);
		puts(ch);
	}
	return 0;
}
void main()
{
	char a[11]={'\0'},b[4]={'\0'};
	char c;
	int i,k,m;
	while(scanf("%s %s",a,b)!=EOF)
	{
		m=strlen(a);
		c=a[0];
		for(i=1;i<m;i++)
			if(a[i]>c)
			{
				c=a[i];
				k=i;
			}
			for(i=0;i<=k;i++)
				printf("%c",a[i]);
			printf("%s",b);
			for(i=k+1;i<m;i++)
				printf("%c",a[i]);
			printf("\n");
	}
}
int main()
{
	char str[11],substr[4],s[15];
	int i,j,max,l,num;
	while(scanf("%s%s",str,substr)+1)
	{
		max=0;
		l=strlen(str);
		for(i=0;i<l;i++)
		{
			if(str[i]>max)
			{
				max=str[i];
			    num=i;
			}
		  }	
			for(j=0;j<=num;j++)
			{
				s[j]=str[j];
			}
			s[num+1]=substr[0];
			s[num+2]=substr[1];
			s[num+3]=substr[2];
			int n=num;
			for(j=num+4;j<=l+3;j++)
			{   
			    n++;
				s[j]=str[n];
			}
			for(j=0;j<l+3;j++)
			{
				printf("%c",s[j]);
			}
			printf("\n");
	}
}
void main()
{
 int i,j,k,n=0,max;char s[100][11],sb[100][4];
 while(scanf("%s%s",s[n],sb[n])!=EOF)    n++;
 for(i=0;i<n;i++)
  {max=0;
   for(j=0;j<strlen(s[i]);j++)  if(s[i][j]>max)  max=s[i][j];
   for(j=0;j<strlen(s[i]);j++)  if(s[i][j]==max)
   {for(k=0;k<=j;k++)   printf("%c",s[i][k]);
    for(k=0;k<strlen(sb[i]);k++)   printf("%c",sb[i][k]);
    for(k=j+1;k<strlen(s[i]);k++)   printf("%c",s[i][k]);
   printf("\n");break;}
}
}
void main()
{
	void in(char str[] , char substr[]);
	char str[100], substr[100];
	while ((scanf("%s%s",&str,&substr)) != EOF)
		in(str, substr);
}

void in(char str[], char substr[])
{
	int i,k,max,l;
	l=strlen(str);
	max=str[0];
	for(i=1;i<l;i++)
	{
		if(max<str[i])
		{
			max=str[i];
			k=i;
		}
	}
	for(i=0;i<=k;i++)
		printf("%c",str[i]);
	printf("%s",substr);
	for(i=k+1;i<l;i++)
		printf("%c",str[i]);
	printf("\n");
}
int main()
{
	void sc(char *p[],char *q[]);
    char *p[100],*q[100];
    int i;
    for(i=0;i<100;i++)
	{p[i]=(char *)malloc(10);
	q[i]=(char *)malloc(5);}
	sc(p,q);
}
void sc(char *p[],char *q[])
{
	int n,m,j,max,x,i;
	for(i=0;scanf("%s %s",p[i],q[i])!=EOF;i++)
	{
		n=strlen(p[i]);m=strlen(q[i]);
		for(j=1,max=*(p[i]);j<n;j++)
			if(*(p[i]+j)>max)
			{max=*(p[i]+j);x=j;}
		for(j=n-x-1;j>=1;j--)
			*(p[i]+x+j+m)=*(p[i]+x+j);
		for(j=0;j<m;j++)
			*(p[i]+x+j+1)=*(q[i]+j);
		for(j=0;j<m+n;j++)
		{
			printf("%c",*(p[i]+j));
			if(j==n+m-1)printf("\n");
		}
	}
}
void main()
{
 char a[12],b[4];
 int i=0,n,m=0;
 char c;
 while(scanf("%s%s",a,b)!=EOF)
 {
  n=strlen(a);
  c=a[0];
  while(i<n)
  {
   if(a[i]>c)
    c=a[i],m=i;
   i++;
  }
  i=0;
  while(i<=m)
  {
   printf("%c",a[i]);
   i++;
  }
  printf("%s",b);
  while(i<n)
  {
   printf("%c",a[i]);
   i++;
  }
  i=0;
  printf("\n");
  m=0;
 }
}
void into(char x[],char y[])
{
	int l,i,m=0,k=0;
	char a[10]={'\0'};
	l=strlen(x);
	for(i=1;i<l;i++) { if(x[i]>x[m]) m=i; }
	for(i=m+1;i<l;i++) { a[k++]=x[i]; x[i]='\0'; }
	strcat(x,y);
	strcat(x,a);
}
void main()
{
	int d;
	for(d=0;d<10;d++)
	{
		char str[14]={'\0'},substr[4]={'\0'};
		scanf("%s%s",str,substr);
		into(str,substr);
		puts(str);
	}
}
int main()
{
	char str[11],sub[4],*max,*p,maxchar;
	while(cin>>str)
	{
		cin>>sub;
		max=str;
		for(p=str;*p;p++)if(*max<*p)max=p;
		maxchar=*max;*max=0;
		cout<<str<<maxchar<<sub<<max+1<<endl;
	}
	return 0;
}
int main()
{
	char a[11],b[4],c[15];
	while(scanf("%s",a)!=EOF)
	{
		scanf("%s",b);
		char *pa,*pb,*pc;
		char *pm;
		int len;
		pa=a;
		pb=b;
		pm=pa;
		len=strlen(a);
		for(;pa<a+len;pa++)
			if(*pm<*pa) pm=pa;
		for(pa=a,pc=c;pa<=pm;pa++,pc++)
			*pc=*pa;
		for(pb=b;pb<(b+3);pb++,pc++)
			*pc=*pb;
		for(;pa<(a+len);pa++,pc++)
			*pc=*pa;
		*pc='\0';
		printf("%s\n",c);
	}
	return 0;
}
int main()
{
	char str[1000][11]={{0}},substr[1000][4]={{0}},a[11]={0},b[4]={0};
	int i=0,j,k,maxpos;
	while(scanf("%s %s",a,b)!=EOF)
	{
		for(j=0;j<=strlen(a);j++)
		{
			str[i][j]=a[j];
		}
		for(j=0;j<=strlen(b);j++)
		{
			substr[i][j]=b[j];
		}
		i++;
	}
	for(j=0;j<=i-1;j++)
	{
		maxpos=strlen(str[j])-1;
		for(k=strlen(str[j])-1;k>=0;k--)
		{
			if(str[j][k]>=str[j][maxpos])maxpos=k;
		}
		for(k=0;k<=maxpos;k++)
		{
			putchar(str[j][k]);
		}
		for(k=0;k<=2;k++)
		{
			putchar(substr[j][k]);
		}
		for(k=maxpos+1;k<=strlen(str[j])-1;k++)
		{
			putchar(str[j][k]);
		}
		putchar('\n');
	}

	return 0;
}
void main()
{
    char a[10],b[5];
	int i,n=0,l,s=0;
		while(scanf("%s %s",&a,&b)!=EOF)
	{
		l=strlen(a);
		int max;
		char *p=&a[0];
		max=*p;
		for(i=0;i<l;i++,p++)
		{
			if(*p>max)
			{
				max=*p;
				n=i;
			}
		}
      for(i=0;i<=n;i++)
      printf("%c",a[i]);
	  printf("%s",b);
	  if(n<l-1)
	  {
		  for(i=n+1;i<l-1;i++)
		  printf("%c",a[i]);
	      printf("%c\n",a[l-1]);
	  }
	  else
		  printf("\n");
	

	}
}
//?????


//????????????
int getMaxCharIndex(char* str)
{
	int i = 0;
	int maxIndex = 0;
	char maxChar = str[0];

	for (i = 0; i < MAX_STR_LENGTH; i++)
	{
		if(str[i] == 0)
			break;
		
		if (maxChar < str[i])
		{
			maxChar = str[i];
			maxIndex = i;
		}
	}

	return maxIndex;
}

//????str?index???subStr
void insertStr(char* str, int index, char* subStr)
{
	int i;
	int strLength = strlen(str); //???????

	for (i = strLength; i > index; i--)
		str[i + MAX_SUBSTR_LENGTH - 1] = str[i];

	for (i = 0; i < MAX_SUBSTR_LENGTH - 1; i++)
		str[i + index + 1] = subStr[i];
}

int main()
{
	char str[MAX_STR_LENGTH];
	char subStr[MAX_SUBSTR_LENGTH];
	int maxIndex;

	while(scanf("%s%s", str, subStr) != EOF)
	{
		maxIndex = getMaxCharIndex(str);
		insertStr(str, maxIndex, subStr);

		printf("%s\n", str);
	}
	return 0;
}
void main()
{
	int s;
	for(;;)
	{
		char str1[100],str2[5],str3[100]={'\0'},m;
		int i,j,l;
		s=scanf("%s %s",&str1,&str2);
		if(s!=2)
			break;
		else
		{  for(i=0,m=str1[0];i<strlen(str1);i++)
		{if(m<str1[i])
	      m=str1[i];}
	   for(i=0;i<strlen(str1);i++)
     	if(str1[i]==m)
		{l=i;break;}
         for(i=0;i<=l;i++)
					 str3[i]=str1[i];
					 for(i=0;i<3;i++)
					str3[l+1+i]=str2[i];
					 for(i=0;i<(strlen(str1)-l-1);i++)
						 str3[l+4+i]=str1[l+i+1];
					 printf("%s\n",str3);

		}
	}
}
main()
{
	char str[14],substr[14],*p=str,*p1,*p2=substr,max;
	int i,j,m,n,k;
	while(scanf("%s %s",str,substr)!=EOF)
	{
		n=strlen(str);
		max=str[0];
		p1=str;
		k=0;
	    for(i=0;i<n;i++)
			if(str[i]>max)
			{
				max=str[i];
				k=i;
			}						
			for(p1=str+n-1;p1>str+k;p1--)				
				*(p1+3)=*p1;
			p1=str;
			*(p1+k+1)=*p2;
			*(p1+k+2)=*(p2+1);
			*(p1+k+3)=*(p2+2);
			for(p=str;p<str+n+3;p++)
		printf("%c",*p);
         printf("\n");
	}
	return 0;
}
int main(){
    char aa[20],bb[10],c;
    int i;
    while(cin>>aa>>bb){
       i=0;
       c=aa[0];
       while(aa[i]!='\0'){
         if(aa[i]>c)
          c=aa[i];           
       i++;
       }
       i=0;
       while(aa[i]!='\0'){
          if(aa[i]==c)
               break;
           cout<<aa[i];
            i++;
            }
            cout<<aa[i]<<bb;
            i++;
            while(aa[i]!='\0'){
               cout<<aa[i];
               i++;
               }
               cout<<endl;
               }
                    return 0;
               }
char* findmax (char *p)
{
	char *max;
	for (max=p;*p!='\0';p++)
		if (*p>*max)
			max=p;
	return max;
}

void insert (char *op, char *sp)
{
  	for (;*op!=*findmax(op);op++)
		printf ("%c", *op);
	printf ("%c", *op);

	for (;*sp!='\0';sp++)
		printf ("%c", *sp);

	for (op++;*op!='\0';op++)
		printf ("%c", *op);

	printf ("\n");
}

void main ()
{
	char ori[10], sub[3], newstr[13];
	char * orip = ori, * subp = sub, *newstrp=newstr;

	while (scanf ("%s %s", ori, sub)!=EOF)	
		insert(orip,subp);	
}
int main()
{
	int a[11],i,j,b,c,n,k;
	char str[11],substr[4],max;
	for(i=0;;i++)
	{
		int d=0;
		if(scanf("%s%s",str,substr)==EOF) break;
		b=strlen(str);
		c=strlen(substr);
		max=str[0];
		for(j=0;j<b;j++)
		{
			if(str[j]-max>0) max=str[j];
		}
		for(j=0;j<b;j++)
		{
			printf("%c",str[j]);
			if(str[j]==max) break;
		}
		printf("%s",substr);
		for(k=j+1;k<b;k++)
		{
			printf("%c",str[k]);
		}
		printf("\n");
	}
	return 0;
}