semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int findmax(char [],int);
int main()
{
	int i,len,k;
	int j;
	char str[15]={'\0'},substr[4]={'\0'};
	while(scanf("%s %s",str,substr)!=EOF)
	{
		len=strlen(str);
		i=findmax(str,len);
		for(j=len-1;j>i;j--)
			str[j+3]=str[j];
		for(j=i+1,k=0;j<i+4;j++,k++)
			str[j]=substr[k];
		printf("%s\n",str);
		for(i=0;i<15;i++)
			str[i]='\0';
		for(i=0;i<4;i++)
			substr[i]='\0';
	}
	return 0;
}
int findmax(char str[],int len)
{
	int i;
	char t;
	t=str[0];
	for(i=0;i<len-1;i++)
		if(t<str[i+1])
			t=str[i+1];
	for(i=0;i<len;i++)
		if(str[i]==t) return i;
}
int ascmax(char str[10])
{
	int sit=0,i;
	char max;
	max=str[0];
	for(i=0;str[i]!='\0';i++)
	{
		if(str[i]>max)
		{
			max=str[i];
			sit=i+1;
		}
	}
	return(sit);
}
void insert(int sit,char *pa,char *pb,char *pc)
{
	int i=0;
	while(i<sit)
	{
		*pc=*pa;
		pc++;
		pa++;
		i++;
	}
	while(i>=sit&&(i<sit+3))
	{
		*pc=*pb;
		pc++;
		pb++;
		i++;
	}
	while((i>=sit+3)&& (*pa !='\0'))
	{
		*pc=*pa;
		pc++;
		pa++;
		i++;
	}
	*pc='\0';
	
}
void main()
{
	int sit;
	char a[11],b[4],c[15];
    while(scanf("%s",a)!=EOF)
	{
		scanf("%s",b);
	
		sit=ascmax(a);
		insert(sit,a,b,c);
		puts(c);
		
	}
	
	
}
int main()
{
	char str[11][13],substr[11][3];
	int l[11],i,j,n=0,max[11];
	while(scanf("%s %s",str[n],substr[n])!=EOF)n++;
	for(i=0;i<n;i++)l[i]=strlen(str[i]);
	for(i=0;i<n;i++)
	{
		max[i]=0;
		for(j=1;j<l[i];j++)
		{
			if(str[i][j]>str[i][max[i]])max[i]=j;
			else max[i]=max[i];
		}
	}
	for(i=0;i<n;i++)
	{
		for(j=l[i]-1;j>=max[i]+1;j--)
		{
			str[i][j+3]=str[i][j];
		}
	}
	for(i=0;i<n;i++)
	{
		str[i][max[i]+1]=substr[i][0];
		str[i][max[i]+2]=substr[i][1];
		str[i][max[i]+3]=substr[i][2];
	}
	for(i=0;i<n;i++)
	{
		for(j=0;j<l[i]+2;j++)printf("%c",str[i][j]);
		printf("%c\n",str[i][l[i]+2]);
	}
}
void main(void)
{
	char a[11],b[4],c[15];
	int j, l, max;
	while (scanf("%s%s", a, b) != EOF)
	{
		max = 0;
		j = 0;
		l = strlen(a);
		for(j = 0;j < l;j ++)
		{
			if(a[j] > a[max])
				max = j;
		}
		for(j = 0;j <= max; j ++)
		{
			c[j] = a[j];
		}
		for(j = 1;j <= 3;j ++)
		{
			c[j + max] = b[j - 1];
		}
		for(j = max + 1;j < l;j ++)
		{
			c[j + 3] = a[j];
		}
		c[l + 3] = '\0';
		puts(c);
	}
}
void main()
{
	int i,k,j;
	char str[10],substr[3],d={0};
	for (j=0;;j++)
	{
		d='\0';
		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]);
	}

}
void main()
{
	char str[10][14],substr[10][4],a[10][9];
	int p=0,i=0,q;
    int n[10];
/*	scanf("%s",str[p]);
	scanf("%s",substr[p]);*/
	while(scanf("%s%s",str[p],substr[p])!=EOF)
	{
	  int j=0,max,m,k=0;
	  n[p]=strlen(str[p]);
	  max=str[p][0];
	  for(i=0;i<n[p];i++)
	  if(str[p][i]>max) {max=str[p][i];j=i;}
	  m=j;
	  for(j=m;j<n[p]-1;j++)
	  {
		a[p][k]=str[p][j+1];
	    k++;
	  }
	  str[p][m+1]=substr[p][0];
	  str[p][m+2]=substr[p][1];
	  str[p][m+3]=substr[p][2];
	  k=0;
	  for(j=m+4;j<n[p]+3;j++)
      {str[p][j]=a[p][k];  k++;}
	  p++;
	 /* scanf("%s",str[p]);
	  scanf("%s",substr[p]);*/
	} 
	for(q=0;q<p-1;q++)
	{for(i=0;i<n[q]+3;i++) printf("%c",str[q][i]);
	printf("\n");}
	for(i=0;i<n[p-1]+3;i++) printf("%c",str[p-1][i]);
}
void main()
{
	char str[16],substr[4],*p1,*p2,*pl;
	for(p1=str;p1<=str+9;p1++)
		*p1='\0';
	for(p2=substr;p2<=substr+2;p2++)
		*p2='\0';
	for(;;)
	{
		pl=str;
		scanf("%s%s",str,substr);
		if(*pl=='\0') break;
		for(p1=str+1;p1<=str+9;p1++)
		{
			if(*p1>*pl) pl=p1;
		}
		for(p1=str;p1<=pl;p1++)
		{
			printf("%c",*p1);
			*p1='\0';
		}
		for(p2=substr;p2<=substr+2;p2++)
		{
			printf("%c",*p2);
			*p2='\0';
		}
		for(;p1<=str+9;p1++)
		{
			if(*p1=='\0') break;
			printf("%c",*p1);
			*p1='\0';
		}
		printf("\n");
	}
}
void main()
{
	int i,k,l;
	char g;
	char str[15],substr[4]={'1','1','1','\0'},te[15];
	scanf("%s",str);
	do
	{
		strcpy(te,str);
		g=getchar();
		for(i=0;i<3;i++)
			scanf("%c",&substr[i]);
		l=strlen(str);
		for(i=1,k=0;i<l;i++)
		{
			if(str[k]<str[i])
				k=i;
		}
		for(i=k+1;i<l;i++)
			str[i+3]=te[i];
		str[l+3]='\0';
		for(i=1;i<4;i++)
			str[k+i]=substr[i-1];
		puts(str);
	}
	while(scanf("%s",str)!=EOF);
}
int main()
{
	char str[11],subs[4];
	int l1,i,j,max;
	while(scanf("%s%s",str,subs)!=EOF)
	{
		l1=strlen(str);
	
		max=0;
		for(i=0;i<l1;i++)
		{
			if(str[i]>str[max])
				max=i;
		}
		for(i=0;i<=max;i++)
		{
			printf("%c",str[i]);
		}
		printf("%s",subs);
		for(i=max+1;i<l1;i++)
			printf("%c",str[i]);
		printf("\n");
	}
	return 0;
}
void main()
{
    int max,maxindex,i,j,k,m,n,l;
	char str1[20],str2[10];
	while(scanf("%s%s",str1,str2)!=EOF)
    {
	   max=0;
	   for(i=0;str1[i];i++)
	   {
		  if(str1[i]>max)
		  {
			max=str1[i];
			maxindex=i;
		  }
	   }
	   m=strlen(str1);
	   n=strlen(str2);
	   for(j=0;j<=maxindex;j++)
	      printf("%c",str1[j]);
	   for(k=0;k<n;k++)
		   printf("%c",str2[k]);
	   for(l=maxindex+1;l<m;l++)
		   printf("%c",str1[l]);
	   printf("\n");
	}
	
}
void main()
{
	char *p,s[10],subs[4];
	while(scanf("%s %s",s,subs)!=EOF)
	{	
	int n,i;
	n=strlen(s);
	p=&s[0];
	for(i=1;i<n;i++)
		if(s[i]>*p)
			p=&s[i];
	for(i=0;i<n;i++)
	{
		printf("%c",s[i]);
		if(&s[i]==p)
			printf("%s",subs);
	}
	printf("\n");
	}
}
void main()
{
	
	char *p,*ip,*p3,str[20],substr[4],max;
	int i;
	while(scanf("%s%s",str,substr)!=EOF)
	{   
		for(max=*str,ip=str,p=str;*p!='\0';p++)
		{
		if(*p>max){max=*p;ip=p;}
		}
		ip=ip+1;
		
		for(p=str+strlen(str);p>=ip;p--)
			*(p+3)=*p;
	
		for(p3=substr,i=0;i<3;i++,p3++,ip++)
			*ip=*p3;
		printf("%s\n",str);
		strcpy(str,"");
	}
}
void main()
{
	char a[11],str[4],max;
	unsigned int position,i;
	while(scanf("%s%s",a,str)!=EOF)
	{
		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++)
			printf("%c",a[i]);
		printf("%s",str);
    	for(i=position+1;i<strlen(a);i++)
				printf("%c",a[i]);
		printf("\n");
	}
}
void main()
{
       char str[15];
       char substr[3];
       char string[500][15];
       char max;
       int i,x,d,j ;
       j=0;

    while (gets(str)!=NULL)
        {
           // 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=j;i<500;i++)
       string[i][0]='\0';
 for (i=0;i<j;i++)
        printf("%s\n",string[i]);
}
int main()
{
  int i,m,n;
  for(;;)
  {
	  char str[11],substr[4],combine[15]={0};
	  if(scanf("%s%s",str,substr)==EOF) break;
	  n=strlen(str);
	  m=0;
	  for(i=0;i<n;i++)
	  {
		  if(str[i]-str[m]>0) m=i;
	  }
	  for(i=0;i<=m;i++)
	  {
		  combine[i]=str[i];
	  }
	  for(i=1;i<=3;i++)
	  {
		  combine[m+i]=substr[i-1];
	  }
	  for(i=1;i<=n-m-1;i++)
	  {
		  combine[m+3+i]=str[m+i];
	  }
	  puts(combine); 
  }
}
int main ()
{
int max, i, max_index;
char str1[20], str2[20];
while (scanf("%s%s", str1, str2)!=EOF)
{
	int ans[20]={0};
max=0;
for (i=1;str1[i];i++)
if (str1[i]>max) max=str1[i], max_index=i;

strncat (ans, str1, max_index+1);
strcat(ans, str2);
strcat(ans, str1+max_index+1);
printf ("%s\n", ans);
}
return 0;
}
void main()
{
 char str[10000][100],substr[10000][100],max;
 int i,j,k,n=0,p;
 i=0;
  while(scanf("%s",&str[i])!=EOF)
   {
     scanf("%s",&substr[i]);
   max=str[i][0];
   p=0;
   for(j=1;j<=strlen(str[i])-1;j++)
    if(str[i][j]>max)
     {
      max=str[i][j];
      p=j;
     }
    for(k=strlen(str[i]);k>=p+1;k--)
     str[i][k+3]=str[i][k];
    for(k=p+1;k<=p+3;k++)
     str[i][k]=substr[i][k-p-1];
     i++;
    } 
  for(j=0;j<=i-1;j++)
   {
    puts(str[j]);
    printf("\n");
   }
}
int main()
{
    int a,b,i,j,k,m,n;
    char s[12],sb[4],x[20];
    while (scanf("%s %s",s,sb)!=EOF)
                  {     m=0;
                        a=strlen(s);
                     for(i=1;i<a;i++)
                           {
                              if(s[i]>s[m])
                              m=i;
                            }
                     for(i=0;i<m+1;i++)
                          {
                             x[i]=s[i];
                          }
                        x [m+1]=sb[0];
                        x [m+2]=sb[1];
                        x [m+3]=sb[2];
                    for(i=m+4;i<a+4;i++)
                         {
                            x[i]=s[i-3];
                          }
                    for(i=0;i<a+3;i++)
                         {
                          printf("%c",x[i]);
                          }
                     printf("\n");
              }
}
int main()
{
	char str[11],sub[4],*p,*max;
	while(cin>>str)
	{
		max=str;
		cin>>sub;
		for(p=str+1;*p;p++)if(*max<*p)max=p;
		for(p=str;p<=max;p++)cout<<*p;
		cout<<sub<<max+1<<endl;
	}
	return 0;
}
void print(int a,int b,char d[])
{
	int i;
	for (i=a;i<=b;i++)
		printf("%c",d[i]);
}
int arrange(char a[])
{
	int i,m=0;
	int t=a[0];
	int l=strlen(a);
	for (i=1;i<l;i++)
		if (a[i]>t)
		{
			m=i;
			t=a[i];
		}
	return m;
}
void main()
{
	char a[11],c[4];
	while (scanf("%s%s",a,c)!=EOF)
	{
		int l1=strlen(a),l2=strlen(c);
		int m=arrange(a);
		print(0,m,a);
		print(0,l2-1,c);
		print(m+1,l1-1,a);
		printf("\n");
	}
}
void insert(char a[10],char b[4])
{
	int len;
	len=strlen(a);
	int i,temp=0;
	for(i=0;i<len;i++)
		if(a[temp]-a[i]<0)
			temp=i;
	for(i=0;i<=temp;i++)
		cout<<a[i];
	cout<<b[0]<<b[1]<<b[2];
	for(i=temp+1;i<len;i++)
		cout<<a[i];	
         cout<<endl;
}
int main()
{
	char str[10]={0},substr[4]={0};
	while(cin>>str>>substr)
    	insert(str,substr);
	return 0;
}
int main()
{
	char s[20],*p,*max;
	int i,l;
	while(gets(s))
	{
		p=s;
		max=p;
    	l=strlen(s);
		for(i=0;i<l-4;i++)
		{
			if(*(p+i)>*max)
				max=p+i;
        }
		for(p=s;p<=max;p++)
			printf("%c",*p);
		printf("%c%c%c",s[l-3],s[l-2],s[l-1]);
		for(p=max+1;p<&s[l-4];p++)
			printf("%c",*p);
		printf("\n");
	}
return 0;
}
int main()
{
    char str[15],substr[5];	
	while (scanf("%s%s",str,substr)!=EOF)
	{
	    int i,m=0;
		for(i=0;i<10;i++)
		{
			if(str[i]==0)
				break;
			if(str[i]>str[m])
			{
				m=i;
			}
		}
		for(i=0;i<=m;i++)
			printf("%c",str[i]);
		printf("%s",substr);
		for(i=m+1;i<15;i++)
		{
			if(str[i]==0)
				break;
			printf("%c",str[i]);
		}
		printf("\n");
	}
	return 0;
}
int main()
{ 
  int s1,s2,i,j,t,max;
  char str[20],substr[5],a[20];
  while(scanf("%s%s",str,substr)!=EOF)
     {
      s1=strlen(str);s2=strlen(substr);
      max=0;
      for(i=0;i<s1;i++)
        if(max<str[i]) 
         {
          max=str[i];
          t=i;
          }
       j=0;
       for(i=t+1;i<s1;i++)
         {
          a[j]=str[i];
          j++;
          }
	   j=0;
	   for(i=t+1;i<t+s2+1;i++)
	   {
		   str[i]=substr[j];
           j++;
	   }
       j=0;
       for(i=t+s2+1;i<s1+s2;i++)
          {str[i]=a[j];
           j++;
          }
       for(i=0;i<s1+s2-1;i++)
         printf("%c",str[i]);
	   printf("%c\n",str[s1+s2-1]);
      }
return 0;
}
void f(char x[], char y[])
{
	int lenx,leny;
	int i,k,j;
	char p;
	lenx=strlen(x);
	leny=strlen(y);
	k=0;p=x[0];
	for(i=0;i<=lenx-1;i++)
	{
		if(x[i]>p){k=i;p=x[i];}
	}
	for(i=lenx-1;i>=k+1;i--)x[i+3]=x[i];
	for(i=k+1;i<=k+3;i++)x[i]=y[i-k-1];
	x[lenx+3]='\0';

}
void main()
{
	char x[20],y[4];
	while (scanf("%s %s",x,y)!=EOF)
	{

	f(x,y);
	printf("%s\n",x);}

}
void main()
{
	char str[20],substr[4];
	int max,i,j,k,p,length;
	while(scanf("%s %s",str,substr)!=EOF)
	{
		length=strlen(str);
		max=str[0];
		for(i=1;i<length;i++)
		{
			if(str[i]>max)
			{
				max=str[i];
				k=i;
			}
		}
		for(j=length-1;j>=k+1;j--)
		{
			str[j+3]=str[j];
		}
		str[k+1]=substr[0];
		str[k+2]=substr[1];
		str[k+3]=substr[2];
		for(p=0;p<length+3;p++)
		{
			printf("%c",str[p]);
		}
		printf("\n");
	}
}
cha(char c[],char d[])
{
	char *p,*a;
	char b[1000] = {'\0'};
	int i = 0;
	char k;
	p = c;
	k = *p;
	for (p = c + 1; *p != '\0';p++)
	{
		if (*p > k)
		{
			k = *p;
			a = p;
		}
	}
	p = a+1;
	for (;*p!='\0';p++)
	{
		b[i++] = *p;
		*p = '\0';
	}
	strcat(c,d);
	strcat(c,b);
}
main()
{
	char c[1000] = {'\0'},d[10] = {'\0'},e[5] = {'\0'};
	while (scanf("%s%s",c,d) != EOF)
	{
		cha(c,d);
	    printf("%s\n",c);
		strcpy(c,e);strcpy(d,e);
	}
}
void main()
{
    int i,k,n;
    char str[11],substr[4],a[14],b;
    while(scanf("%s%s",str,substr)!=EOF)
    {
        n=strlen(str);
        b=str[0];
        k=0;
        for(i=1;i<n;i++)
        {
            if(b<str[i])
            {b=str[i];k=i;}
        }
        for(i=0;i<=k;i++)
        a[i]=str[i];
        a[k+1]=substr[0];
        a[k+2]=substr[1];
        a[k+3]=substr[2];
        for(i=k+4;i<=n+2;i++)
        a[i]=str[i-3];
        for(i=0;i<=n+2;i++)
        printf("%c",a[i]);
        printf("\n");
    }
}
int main()
{
	char str[10][11],substr[10][4],output[10][14]={'\0'};
	int maxN=0,i=0,j,end;
	while(scanf("%s %s",str[i],substr[i])!=EOF)
	{
	//	scanf("%s %s",str[i],substr[i]);
		i++;	
	}
	end=i;
	for(i=0;i<end;i++)
	{
		char max=str[i][0],*p;
		p=output[i];
		for(j=0;j<strlen(str[i]);j++)
			if( (int)str[i][j] >(int)max )
			{max=str[i][j];maxN=j+1;}
		strncpy(p,str[i],maxN);
		strcat(p,substr[i]);
		strcat(p+strlen(output[i]),str[i]+maxN);
		printf("%s\n",output[i]);
	}
	return 0;
}
void charu()
{
	char str[11], substr[4],c,a[11];
	int i=0,k,s;

	scanf("%s %s",str,substr);
	k=strlen(str);
	if(strlen(str)>=11 || strlen(substr)>=4) return; 
	for(i=0;i<k;i++)
	{
		a[i]=str[i];
	}
	for(i=k;i<11;i++)
	    a[i]='\0';
	
	for(i=0;i<k-1;i++) 
	{
		if(a[i]>a[i+1])
		{
			c=a[i];
			a[i]=a[i+1];
			a[i+1]=c;
		}
	}
    for(i=0;i<k;i++) 
	{
		if(str[i]==a[k-1])
		{
			s=i;
		    break;
		}
	}
	for(i=0;i<s+1;i++) 
		printf("%c",str[i]);
	printf("%s",substr);
	for(i=s+1;i<k;i++) 
		printf("%c",str[i]);
	printf("\n");
	charu();
}

void main()
{
	charu();
}
int main()
{
	char str[11],substr[4],a[13];
	int i;
	while(cin>>str>>substr){
		char max=str[0];
		for(int i=0;i<10;i++){
			if(str[i]>max) max=str[i];}
		int m=0;
		for(i=0;i<10;i++){
			if(str[i]==max){
				m=i;break;}}
		for(i=0;i<=m;i++)
			a[i]=str[i];
		for(i=0;i<3;i++)
			a[m+1+i]=substr[i];
		for(i=m+1;i<strlen(str);i++)
			a[i+3]=str[i];
		a[strlen(str)+3]='\0';
		for(i=0;i<strlen(a);i++)
			cout<<a[i];
		cout<<endl;}
	return 0;
}
int h(char a[],char b[])
{
	char c;
	int len,i=0,k=0;
	len=strlen(a);
	c=a[0];
	while(i<len)
	{
		if(a[i]>c)
		{
			c=a[i];
			k=i;
		}
		i++;
	}
	for(i=0;i<=k;i++)
		printf("%c",a[i]);
	for(i=0;i<3;i++)
		printf("%c",b[i]);
	for(i=k+1;i<len;i++)
		printf("%c",a[i]);
	printf("\n");		
		
	return 0;
}
int main()
{
	int h(char a[],char b[]);
	char a[10],b[4],c;
	int i=0;
	while(i<10)
	{
		
	    if(scanf("%s%s",a,b)==EOF) break;
	    else
			h(a,b);
		    i++;
	}
	return 0;
}
void main()
{int i,j,n,max;
char str[15],substr[4];
while (scanf("%s%s",str,substr)!=EOF)
{n=strlen(str);
max=0;
for(i=1;str[i]!='\0';i++)
if(str[i]>str[max]) max=i;
for(i=n-1;i>max;i--)
str[i+3]=str[i];
for(i=max+1,j=0;i<=max+3,j<3;i++,j++)
str[i]=substr[j];
str[n+3]='\0';
printf("%s\n",str);
}
}
void main()
{
	char str[10],substr[4],*p,t;
	int i,j,k;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		p=str;
		t=*p;
		j=0;
		k=strlen(str);
		for(i=0;i<k;i++,p++)
			if(*p>t)
			{
				t=*p;
				j=i;
			}
	
		for(p=str,i=0;i<j+1;i++,p++)
			printf("%c",*p);
		printf("%s",substr);
		for(i=j+1;i<k;i++,p++)
			printf("%c",*p);
		printf("\n");
	}
}
void main()
{
	char s[20][13],str[3],S[20][13];
	int i,j,k,n,max;
	for(i=1;(s[i][0]=getchar())!=EOF;i++)
	{
		s[i][1]='\0';
		gets(S[i]);
		strcat(s[i],S[i]);
	}
	n=i-1;
    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");
	}
}
void main()
{
	char temp[1024],a[512],b[512];
	
	while(gets(temp)!=NULL)
	{
		if(temp[0]=='\0')
			break;
		
		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()
{
	int max,i,max1;
	char str[20],substr[4],ans[20];
	char *p=str,*q=substr;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		max=0;
		for(i=1;str[i];i++)
			if(str[i]>max)
				max=str[i],max1=i;
			strcpy(ans,"");
			strncat(ans,str,max1+1);
			strcat(ans,substr);
			strcat(ans,str+max1+1);
			printf("%s\n",ans);
	}
	return 0;
}
main()
{
	char c1[50][100]={{'\0'}},c2[50][100]={{'\0'}},ch1[50][200]={{'\0'}},ch2[50][100]={{'\0'}};
	int i,j,m,n=0,a[50]={0};
	while(scanf("%s%s",c1[n],c2[n])!=EOF)
	{
		m=c1[n][0];
		for(j=1;c1[n][j]!='\0';j++)
		{
			if(m<c1[n][j])
			{
				a[n]=j;
				m=c1[n][j];
			}
		}
		n++;
	}
	for(i=0;i<n;i++)
	{
		for(j=0;j<=a[i];j++)
			ch1[i][j]=c1[i][j];
		for(;j<strlen(c1[i]);j++)
			ch2[i][j-a[i]-1]=c1[i][j];
		strcat(ch1[i],c2[i]);
		strcat(ch1[i],ch2[i]);
	}
	for(i=0;i<n;i++)
		puts(ch1[i]);
	return 0;
}
void start()
{
	int i,lenstr,lensub;
	char str[11],substr[4],max,t;
	
	while(scanf("%s%s",str,substr)!=EOF)
	{lenstr=strlen(str);
	lensub=strlen(substr);
	max=str[0];
	for(i=1;i<lenstr;i++)
	{
		if(max<str[i])
		{
		max=str[i];
		t=i;
		}
	}
	for(i=0;i<=t;i++)
		printf("%c",str[i]);
	for(i=0;i<lensub;i++)
		printf("%c",substr[i]);
	for(i=t+1;i<lenstr;i++)
		printf("%c",str[i]);
	printf("\n");
	start();

	}
	}
void main()
{
	start();
}
int main()
{
    int i,j,k;
    char s1[100],s2[100];
    while (scanf("%s%s",&s1,&s2)!=EOF)
    {
          j=0; k=0;
          for (i=0;i<strlen(s1);i++)
          {
              if ((int)s1[i]>j)
              {
                 j=(int)s1[i]; k=i;
              }
          }
          for (i=0;i<strlen(s1);i++)
          {
              putchar(s1[i]);
              if (i==k)
              {
                 for (j=0;j<strlen(s2);j++)
                     putchar(s2[j]);
              }
          }
          printf("\n");
    }
}
void main()
{
 char str[20][10],string[20][4],d;
 int i,j,m[20]={0},l[20];
 for(i=0;;i++)
 {
	 d='\0';
 if(scanf("%s %s",&str[i],&string[i])==EOF)   break;
	
	 for(j=0;str[i][j]!='\0';j++)   if((int)str[i][j]>m[i])  m[i]=str[i][j];
	 
		 

 

	 for(j=0;str[i][j]!='\0';j++)   if(m[i]==str[i][j])   { l[i]=j;break;}
	 for(j=0;j<=l[i];j++) printf("%c",str[i][j]);
	 for(j=0;j<strlen(string[i]);j++) printf("%c",string[i][j]);
	 for(j=l[i]+1;str[i][j]!='\0';j++)
		 printf("%c",str[i][j]);
	 printf("\n");
 }
}
int main()
{
	int i,j,k,n;
    char str[11],substr[4];
	while(scanf("%s %s",&str,&substr)!=EOF)
	{
		n=strlen(str);
		for(i=0;i<n;i++)
		{
			k=0;
			for(j=0;j<n;j++)
				if(str[i]>=str[j]) k++;
			if(k==n) break;
		}
		for(j=0;j<=i;j++) printf("%c",str[j]);
		printf("%s",substr);
		for(j=i+1;j<n;j++) printf("%c",str[j]);
	printf("\n");
	}
	return 0;
}
int main()
{
	char s[100][20],*p,*pp,*pr,temp[3];
	int i,k,m,j;
	i=0;
	while(gets(s[i])!=NULL)
	{
	i++;
	}
	k=i;
	for(j=0;j<=k-1;j++)
	{
		p=s[j];
		for(i=0,m=*p,pp=p;i<=100;i++)
		{
			if(*(p+i)>m)
			{
			pp=p+i;
			m=*pp;
			}
			else if(*(p+i)==' ')
			{pr=p+i;
			break;}
		}
        temp[0]=*(pr+1);
		temp[1]=*(pr+2);
		temp[2]=*(pr+3);
		for(i=1;i<=pr-pp-1;i++)
		{*(pr-i+3)=*(pr-i);}
        *(pp+1)=temp[0];
		*(pp+2)=temp[1];
		*(pp+3)=temp[2];
		*(p+strlen(s[j])-1)='\0';
		puts(s[j]);
	}
		
}
//#include<math.h>

int main()
{
 int i,len,max,maxi;
 char substr[4],str[11];
 for (i=0;i<4;i++)
	 substr[i]=-1;
 for(i=0;i<11;i++)
	 str[i]=-1;
 while (scanf("%s%s",str,substr)!=EOF)
 {
	 len=strlen(str);
	 max=-1;
	 maxi=-1;
	 for (i=0;i<len;i++)
	 {
		 if (str[i]>max)
		 {
			 max=str[i];
			 maxi=i;
		 }
	 }
	 for (i=0;i<len;i++)
	 {
		 printf("%c",str[i]);
		 if (i==maxi) printf("%s",substr);
	 }
	 printf("\n");
 }
 return 0;
}
//
//  main.c
//  Track 94,?????
//
//  Created by Charles.thRay.Lee on 12/1/13.
//  Copyright (c) 2013 Peking University. All rights reserved.
/*
 ??	POJ 2934
 ??
 ??????str?substr?str????????10?substr??????3????????????????'\0'???substr???str?ASCII?????????????????????????
 ????
 ??????????????????????
 str substr
 ????
 ?????????????????????
 ????
 abcab eee
 
 12343 555
 ????
 abceeeab
 
 12345553
 ??
 ????????????????????scanf("%s%s",str,substr)????EOF?????????
*/


int main()
{
    char a[100][100],b[100][100];
    int n=0;
    
    while (scanf("%s%s",a[n],b[n])!=EOF) {
        n++;
    }
    
    int i,j,k,mark;
    char c='\0';
    
    for (i=0; i<n; i++) {
        c='\0';
        for (j=0; a[i][j]!='\0'; j++) {
            if (a[i][j]>c) {
                c=a[i][j];
                mark=j;
            }
        }
        for (k=0; k<=mark; k++) {
            printf("%c",a[i][k]);
        }
        printf("%s",b[i]);
        for (k=mark+1; a[i][k]!='\0'; k++) {
            printf("%c",a[i][k]);
        }
        printf("\n");
    }
}
void main()
{ char s1[10],s2[30];
  int i,j,len,max;
  while (scanf("%s%s",s1,s2)!=EOF) 
{ max=0;char s3[30]={'\0'};  
  len=strlen(s1);
  for(i=0;i<len;i++)
{ if(s1[i]>max) j=i,max=s1[i];
} for(i=j+1;i<len;i++)
{ s3[i-j-1]=s1[i],s1[i]='\0';
}
  strcat(s1,s2);
  strcat(s1,s3);
  printf("%s\n",s1); 
}
}
void main()
{
	char str[15],sub[4],m;
	int t,i,len;
	
	
	
	while(scanf("%s %s",str,sub)!=EOF)
	{
		t=0;m=str[0];len=0;
		for(i=0;str[i]!='\0';i++)
			len++;
       
        for(i=1;i<len;i++)
			if(str[i]>m)
			{
				t=i;
				m=str[i];
			}
	    for(i=len-1;i>t;i--)
			str[i+3]=str[i];
		str[t+1]=sub[0];
		str[t+2]=sub[1];
		str[t+3]=sub[2];
		str[len+3]='\0';
		printf("%s\n",str);
	}
}
void main()
{
	int i,j,a,b,max;
	char str[11],substr[4],mix[14]; 
	while (scanf("%s%s",str,substr)!=EOF)
	{
		
		a=strlen(str);
		b=strlen(substr);
		max=0;
		j=0;
        for (i=0;i<a+b;i++)
		{
			mix[i]=0;
		}

		for(i=0;i<a;i++)
		{
			if(str[i]>max)
			{
				max=str[i];
			    j=i;
			}
		}
		
		for(i=0;i<a+b;i++)
		{
			if(i<=j)
			{
				mix[i]=str[i];
			}
			if(i>j && i<=j+b)
			{
				mix[i]=substr[i-j-1];
			}
			if (i>j+b && i<a+b)
			{
				mix[i]=str[i-b];
			}
			printf("%c",mix[i]);
		}
		printf("\n");
		
	}
}
void main()
{
	char s[16];
	s[15]=0;
	int i,len,p=15;
	while(gets(s))
   {
		len=strlen(s)-5;
	for(i=len;i>=0;i--)
		if(s[i]>=s[p]) p=i;
	for(i=0;i<=p;i++)
		printf("%c",s[i]);
	for(i=len+2;i<=len+4;i++)
		printf("%c",s[i]);
	for(i=p+1;i<=len;i++)
		printf("%c",s[i]);
	printf("\n");
	}
}
void main()
{
	char a[100],b[100];
	int n,i,j;
	char *p1;
	while(scanf("%s",a)!=EOF)
	{
		scanf("%s",b);
		p1=&a[0];
		for(i=0;a[i]!='\0';i++)
		{
			if(a[i]>*p1)
			{p1=&a[i];}
		}
		for(i=0;a[i]!='\0';i++)
		{
			if(&a[i]!=p1)
				printf("%c",a[i]);
			if(&a[i]==p1)
				printf("%c%c%c%c",*p1,b[0],b[1],b[2]);
		}
		printf("\n");
	}
	
}
void main()
{
	int i,j,k,m=0,n,w;
	char a[10][15],b[10][15],d[10][15];
	for (i=0;i<10;i++)
		for(j=0;j<15;j++)
		{a[i][j]='\0';b[i][j]='\0';d[i][j]='\0';}
	for(i=0;scanf("%s %s",a[i],b[i])!=EOF;i++)
	{n=strlen(a[i]);
	for (k=0,m=0;k<n-1;k++)
	{if (a[i][m]<a[i][k+1])
	m=k+1;}
	for (k=n-1;k>m;k--)
		a[i][k+3]=a[i][k];
	for (k=m+1,w=0;k!=m+4;k++,w++)
         a[i][k]=b[i][w];
    puts(a[i]);printf("\n");}
}
void main()
{
	char str[13],substr[3];
	int s,i,j,p,max;
	while(scanf("%s %s",str,substr)!=EOF)//EOF????????????????????
	{
	s=strlen(str);
	max=str[0];
	for(i=0;i<=s-1;i++)
		if(str[i]>max)
		{
			max=str[i];
              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];
    for(i=0;i<=s+2;i++)
	printf("%c",str[i]);
	printf("\n");
	}
}