semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	int i,l,m=0;
	char str[20]={'0'},substr[4]={'0'},max=0;
	while(1)
	{
		scanf("%s %s",str,substr);
		if(str[0]==0) break;

l=strlen(str);
		for(i=0;i<l;i++)
		{
			if(str[i]>max)
			{
				max=str[i];
				m=i;
			}
		}
		if(m==l-1)
		{
			for(i=l;i=l+2;i++)
				str[i]=substr[i-l];
		}
		else
		{
			for(i=l-1;i>m;i--)
				str[i+3]=str[i];
			for(i=m+1;i<m+4;i++)
				str[i]=substr[i-m-1];
		}
		printf("%s\n",str);m=0;max=0;
for(i=0;i<20;i++) str[i]=0;for(i=0;i<3;i++) substr[i]=0;
	}
	return 0;
}
void main()
{
    char str[100][50];
    int a[100][2],b[100],c[100];
    int i,j,k=-1;
	for(i=0;i<100;i++)
	{c[i]=b[i]=0;}
	for(i=0;i<100;i++)
	{gets(str[i]);
	k=k+1;
	if (str[i][0]=='\0') break;}
	for(i=0;i<k;i++)
	{c[i]=strlen(str[i]);
	for(j=0;j<c[i];j++)
	if(str[i][j]==' ')  b[i]=j;}
    
	for (i=0;i<k;i++) 
	{a[i][1]=str[i][0];
	a[i][0]=0;}
	for (i=0;i<k;i++)
	for(j=0;j<b[i];j++)
	if (str[i][j]>a[i][1])
	{a[i][0]=j;
	a[i][1]=str[i][j];}
	
	for(i=0;i<k;i++)
	{for(j=0;j<a[i][0]+1;j++)
		printf("%c",str[i][j]);
	for(j=b[i]+1;j<b[i]+4;j++)
		printf("%c",str[i][j]);
         for(j=a[i][0]+1;j<b[i];j++)
		printf("%c",str[i][j]);
	printf("\n");
	}
    
}
void main()
{  int n=0,i,j,k,b,a;char max;
   char str[100][10];char substr[100][3];
    while((scanf("%s %s",str[n],substr[n]))!=EOF)
      {
          n++;
      }
    for(i=0;i<n;i++)
          {k=strlen(str[i]);
           max=str[i][0];
           for(j=1;j<k;j++)
              { if(str[i][j]>max) {max=str[i][j];b=j;}}
        for(a=0;a<=b;a++)
           {printf("%c",str[i][a]);}
          for(a=0;a<3;a++)
          {
              printf("%c",substr[i][a]);
          }
        for(a=b+1;a<k;a++)
           {printf("%c",str[i][a]);}
        printf("\n");
        }
}
void f(char str[15],char substr[4]);
void main()
{
	char str[15],substr[4];
	while (scanf("%s%s",str,substr)!=EOF) 
	{
	f(str,substr);
	}
}
void f(char str[15],char substr[4])
{
	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);
}
void main()
{
	char s1[103][12],s2[103][4];
	int i=0,j,max=0,k,u,len;
         while (scanf("%s%s",s1[i],s2[i])!=EOF)i++;
		 for(j=0;j<i;j++)
		 {
			 len=strlen(s1[j]);
			 max=0;u=0;
			 for(k=0;k<len;k++)
			 {
				 if(s1[j][k]>max)
				 {max=s1[j][k];u=k;}
			 }
			 for(k=0;k<=u;k++)
			 printf("%c",s1[j][k]);
			 for(k=0;k<=2;k++)
				 printf("%c",s2[j][k]);
			 for(k=u+1;k<len;k++)
				 printf("%c",s1[j][k]);
			 printf("\n"); 
		 }

}
int main()
{
	char str[20],substr[5],max;
	int a,b,i,flag;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		max=0;
		a=strlen(str);
		b=strlen(substr);
		for(i=0;i<a;i++)
		{
			if(str[i]>max) max=str[i];
		}
		flag=1;
		for(i=0;i<a;i++)
		{
			if(str[i]<max) printf("%c",str[i]);
			else
			{
				printf("%c",max);if(flag==1) printf("%s",substr);flag=0;
			}
		}
		printf("\n");
	}
	return 0;
}
int main ()
{
	char str[100][11]={0}, substr[100][4]={0}, ans[100][20]={0};
	int i=0, j, max=0, index, n=0;
	for (j=0; scanf("%s %s", str[j], substr[j])!=EOF; j++)
		n++;	
	for(j=0; j<n; j++)
		{
			max=0;
		    for (i=0; i<10; i++)
				if (str[j][i]>max)
				{
				  max=str[j][i];
				  continue;
				}
			for (i=0; i<10; i++)
			    if (str[j][i]==max)
				{
				   index=i;
				   break;
				}
		    for (i=0; i<index+1; i++)
			    ans[j][i]=str[j][i];
		    for (i=index+1; i<index+strlen(substr[j])+1; i++)
			    ans[j][i]=substr[j][i-index-1];
		    for (i=index+strlen(substr[j])+1; i<strlen(str[j])+strlen(substr[j]); i++)
			    ans[j][i]=str[j][i-strlen(substr[j])];
		    puts(ans[j]);
		}	
		return 0;
}
void main()
{
	char str[15],substr[5],a;
	int i,j,n,m,l;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		n=strlen(substr);
		m=strlen(str);
		a=0;
		for(i=0;i<m;i++)
		{
			if(a<str[i])
				a=str[i];
		}
		for(j=0;;j++)
		{
			if(a==str[j])
				break;
		}
		for(l=m-1;l>=j+1;l--)
			str[l+n]=str[l];
		for(l=j+1;l<=j+n;l++)
			str[l]=substr[l-j-1];
		str[m+n]='\0';
		printf("%s\n",str);
	}
}
void main()
{
        char str[14],substr[4];
        char str1[14],str2[14];
        int i=0,n,k;
        char max;
        while(scanf("%s%s",str,substr)!=EOF)
       { n=strlen(str);
        for(i=0,max=str[0];i<n;i++)
                max=(max>=str[i])?max:str[i];
        for(i=0;i<n;i++)
        {
                if(str[i]==max)break;
        }
        k=i;
        strncpy(str1,str,k+1);
        str1[k+1]='\0';
        for(i=0;i<n-k-1;i++)
                str2[i]=str[k+1+i];
        str2[i]='\0';
        strcat(str1,substr);
        strcat(str1,str2);
        printf("%s\n",str1);
       }
}
void main()
{
  char a[100][11],b[100][4];  int p,i=0,j,k,t;
  while(scanf("%s%s",a[i],b[i])!=EOF)   i++;
  for(j=0;j<i;j++)
    {  t=0;
       for(k=1;k<strlen(a[j]);k++)   if(a[j][k]>a[j][t])  t=k;
       for(p=0;p<=t;p++)   printf("%c",a[j][p]);
       for(p=0;p<strlen(b[j]);p++)  printf("%c",b[j][p]);
       for(p=t+1;p<strlen(a[j]);p++)   printf("%c",a[j][p]);
       printf("\n"); 
     }
}
int main()
{
	char str[13],*p,*h;
	int l,i,m;
	while(gets(str))
	{
		p=str;
		h=str;
		m=0;
		l=strlen(p);
		for(i=0;i<(l-4);i++)
		{
			if(*h<*(p+i)) 
			{
				h=p+i;
				m=i;
			}
		}
		for(i=0;i<=m;i++)
			printf("%c",*(p+i));
		printf("%c%c%c",*(p+l-3),*(p+l-2),*(p+l-1));
		for(i=m+1;*(p+i)!=' ';i++)
			printf("%c",*(p+i));
		printf("\n");
	}
return 0;
}
void main()
{     
	  int i=0,k[100],j,a[100];
      char str[100][50],max;
	  do 
	  {gets(str[i]);
	      a[i]=strlen(str[i]);
		  i++;}
	  while(str[i-1][0]!='\0');

      for(i=0;str[i][0]!='\0';i++)
	  {
		  max=str[i][0];
		  for(j=0;j<a[i]-4;j++)
		  {
			  if(str[i][j]>max)
			  { max=str[i][j];
			  k[i]=j;}
		  }
	  }
	  for(i=0;str[i][0]!='\0';i++)

	  {for(j=0;j<=k[i];j++)
			  printf("%c",str[i][j]);
		  for(j=a[i]-3;j<a[i];j++)
			  printf("%c",str[i][j]);
		  for(j=k[i]+1;j<a[i]-4;j++)
			  printf("%c",str[i][j]);
		  printf("\n");
	  }
}
int pan(char s[],int n)
{
	int i=0,t,max,m;
	for(i=0;i<n;i++)
	{
		if(s[i]==' ') {t=i;break;}
	}
	for(i=t-1,max=s[t-1];i>=0;i--)
	{
		if(s[i]>=max) {max=s[i];m=i;}
	}
	return(m);
}



int kong(char s[],int n)
{
	int i,t;
	for(i=0;i<n;i++)
	{
		if(s[i]==' ') {t=i;break;}
	}
	return(t);
}




void main()
{
	char s[1000][20];int i,j,t,m;
	for(i=0;;i++)
	{
		gets(s[i]);
		if(s[i][0]=='\0') break;
	}
	for(i=0;;i++)
	{
		if(s[i][0]=='\0') break;
		else
		{
			 t=pan(s[i],strlen(s[i]));
			for(j=0;j<=t;j++)
			{	
				printf("%c",s[i][j]);
			}
			m=strlen(s[i]);
			printf("%c%c%c",s[i][m-3],s[i][m-2],s[i][m-1]);
			for(j=t+1;j<kong(s[i],m);j++)
			{
				printf("%c",s[i][j]);
			}
			printf("\n");
		}
	}
	
}
void main()
{void f(char yl[],char cr[]);
char a[11],b[4];int i;
for(i=1;;){if(scanf("%s%s",a,b)==EOF)break;
else f(a,b);

}
}
void f(char yl[],char cr[])
{int i,j,l,p=0;char s[14];l=strlen(yl);
for(i=0;i<=l-1;i++){p=0;for(j=0;j<=l-1;j++)if(yl[j]>yl[i]) p++;if(p==0){p=i;break;}}
for(i=0;i<=p;i++) s[i]=yl[i];for(i=p+1;i<=p+3;i++) s[i]=cr[i-1-p];for(i=p+4;i<=l+2;i++) s[i]=yl[i-3];s[l+3]='\0';
printf("%s\n",s);}
void main()
{
	int i,j,a;
	char c,str[800],substr[4],str0[800],max;
	while((scanf("%s %s",str,substr))!=EOF)
	{
		a=strlen(str);
		max=str[0];
		for(i=0;i<a;i++)
			if(str[i]>max)
				max=str[i];
		for(i=0;i<a;i++)
			if(str[i]==max)
				break;
		for(j=0;j<=i;j++)
			str0[j]=str[j];
		for(j=i+1;j<a;j++)
			str0[j+3]=str[j];
		str0[i+1]=substr[0];
		str0[i+2]=substr[1];
		str0[i+3]=substr[2];
	    for(i=0;i<a+3;i++)
			printf("%c",str0[i]);
		printf("\n");
	}
}
int f(char str[])              /*?????str?ASCII??????*/
{
	int i,a,n;
	char nul='0';
	a=strlen(str);
	for(i=0;i<a-4;i++)
	{
		if(str[i]>nul){nul=str[i];n=i;}
	}
	return(n);
}
void main()
{
	int i=0,n,j,a[100],length[100];
	char str[100][50],str1[100][50];
	do
	{                                          /*????????*/
		gets(str[i]);
	    length[i]=strlen(str[i]);i++;
	}
	while(length[i-1]!=0);
	n=i-1;
	for(i=0;i<n;i++)
	{
		a[i]=f(str[i]);
		for(j=0;j<50;j++)
		{
			if(j<a[i]+1)str1[i][j]=str[i][j];
			else if(j>a[i]&&j<a[i]+4)str1[i][j]=str[i][length[i]+j-4-a[i]];
            else if(j>a[i]+3 && j<length[i]-1)str1[i][j]=str[i][j-3];
			else if(j>=length[i]-1)str1[i][j]='\0';
		}			    
	}
	for(i=0;i<n;i++)printf("%s\n",str1[i]);
}
int main ()

{

       char str[13];

       char sub[4];

       int i,la;

       int max,t;

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

       {

              max=0;

              la=strlen (str);

              for (i=0;i<la;i++)

              {

                     if (max<str[i]) {t=i;max=str[i];}     // ???????? 

              }

              for (i=la-1;i>t;i--)

              {

                     str[i+3]=str[i];  //?????? ????????????

              }

              str[t+1]=sub[0];

              str[t+2]=sub[1];

              str[t+3]=sub[2];

              for (i=0;i<la+3;i++)

              printf ("%c",str[i]);

              printf ("\n");

       }

       return 0;

}
void main()
{
	char c[10],s[4];
	int k,x;
	char p;
    while(scanf("%s %s",c,s)!=EOF)
	{
	   for(k=0,p='0';k<10&&(c[k])!='\0';k++)
	   {
   	       if(p<c[k])
		   {
	     		p=c[k];
	  			x=k;
		   }
	   }
	   for(k=0;k<=x;k++)
	   {
		   printf("%c",c[k]);
	   }
	   for(k=0;k<4&&(s[k]!='\0');k++)
	   {
		   printf("%c",s[k]);
	   }
	   for(k=x+1;k<10&&(c[k]!='\0');k++)
	   {
		   printf("%c",c[k]);
	   }
	   printf("\n");
	}
}
void main()
{
	char str[10],str1[10],substr[4],letter,result[13],
	b[10]={'\0'},string[13];//??result????????????????????
	int a[10]={0,1,2,3,4,5,6,7,8,9},m,l,i,j,time;
	for(time=1;time<100;time++)
	{
	for(i=0;i<10;i++)
	{
		str[i]='\0';
	}
	for(i=0;i<13;i++)
	{
		result[i]='\0';
	}
	for(i=0;i<4;i++)
	{
		substr[i]='\0';
	}
	for(i=0;i<10;i++)
	{
		a[i]=i;
	}
	for(i=0;i<10;i++)
	{
		b[i]='\0';
	}
	for(i=0;i<13;i++)
	{
		string[i]='\0';
	}

	gets(string);
	if(strlen(string)==0) break;//??????????????
		for(i=0;string[i]!=' ';i++)
		{
			str[i]=string[i];
		}
	//scanf("%s",str);
	//getchar ();//??????????????.
	//scanf("%s",substr);
	l=strlen(str);
    for(i=l+1,j=0;i<l+4,j<3;i++,j++)
	{
		substr[j]=string[i];
	}
	substr[3]='\0';//???????????????????'\0'????????
	strcpy(str1,str);
	for(i=0;i<l-1;i++)
	{
		for(j=0;j<l-i-1;j++)
		{
			if(str1[j]<str1[j+1])
			{
				letter=str1[j],m=a[j];
				str1[j]=str1[j+1],a[j]=a[j+1];
				str1[j+1]=letter,a[j+1]=m;
			}//a[j]????str1[j]?????.
		}
	}
	m=a[0];
	strncpy(result,str,m+1);
	strcat(result,substr);//??strcat,???strcpy!!
	for(i=0;i<l-m-1;i++)
	{
		str1[i]=str[i+m+1];
	}
	strncpy(b,str1,l-m-1);//???????????????.
	strcat(result,b);
	printf("%s\n",result);
	}
}
void main()
{
	int i,j,k,l,n,flag;
	char str[50],substr[4];
	while(scanf("%s%s",str,substr)!=EOF)
	{
		n=strlen(str);
		for(i=0;i<=n-1;i++)
		{
			for(j=0,flag=0;j<=n-1;j++)
				if(str[i]>=str[j])flag++;
			if(flag==n)break;
		}
		for(k=n-1;k>=i+1;k--)
			str[k+3]=str[k];
		for(l=1;l<=3;l++)
			str[i+l]=substr[l-1];
		str[n+3]='\0';
		printf("%s\n",str);}}
int main()
{
	char a[100],c,str[100],substr[100],x;
	int i,j,k,s,t;
	while(gets(a))
	{
		for(i=0;(c=a[i])!=' ';i++)
			str[i]=a[i];
		s=i+1;
		k=0;
		for(j=s;(c=a[j])!='\0';j++)
		{
			substr[k]=a[j];
			k++;
		}
		x=str[0];
		for(i=0;i<s-1;i++)
			if(str[i]>x)
			{
				t=i+1;
				x=str[i];
			}
			for(i=0;i<t;i++)
				printf("%c",str[i]);
			for(j=0;j<3;j++)
				printf("%c",substr[j]);
			for(i=t;i<s-1;i++)
				printf("%c",str[i]);
			printf("\n");
	}
			return 0;
}
int find(char *str,int n)
{
	int max=*str,i,sign;
	for(i=0;i<n;i++)
		if(*(str+i)>max)max=*(str+i),sign=i;
		return sign;
}
void insert(char *a,char *b,int k,int n)
{
	int i,j;
	for(i=n;i>k;i--)
		*(a+i+3)=*(a+i);
	for(j=0;j<3;j++)
		a[++k]=b[j];
}
void main()
{
      char str[100],substr[10];
	  int n,sign;
	  while(scanf("%s%s",str,substr)!=EOF)
	  {
		  n=strlen(str);
	  sign=find(str,n);
	  insert(str,substr,sign,n);
	  printf("%s\n",str);
	  }
}
void main()
{
	char s1[11],s2[4];
	int i,j,n,b;
	while (scanf("%s%s",s1,s2)!=EOF)
	{
		n=strlen(s1)-1;
		j=0;
		b=s1[0];
		for(i=0;i<=n-1;i++)
		{
			if(b<s1[i]){j=i;b=s1[i];}
		}//printf("%d",j);
//		printf("%d\n",j);
		for(i=0;i<=j;i++)
		{
			printf("%c",s1[i]);
		}
		printf("%s",s2);
		while (j<n)
		{
			printf("%c",s1[j+1]);
			j++;
		}
                printf("\n");
//		printf("%c",s1[j+1]);
/*		for (i=j+1;i<=n;j++)
		{
			printf("%c",s1[i]);
		}*/
        

	}
}
int main()
{
    int max,i,k;
    char str1[20],str2[20];
    while(scanf("%s %s",str1,str2)!=EOF)
    {
     max=0;
     for(i=0;*(str1+i)!='\0';i++)
     if(*(str1+i)>max)
      {max=*(str1+i);
      k=i;}
    for(i=0;i<=k;i++)
    printf("%c",*(str1+i));
    printf("%s",str2);
    for(i=k+1;*(str1+i)!='\0';i++)
    printf("%c",*(str1+i));
    printf("%c",'\n');
    }
}
int main()
{
    char s1[100][11];
    char s2[100][4];
    int i,j,m,k,p;
    scanf("%s%s",s1[0],s2[0]);
    m=0;
    p=0;
    do
    {
       m=0;
       for(k=0;k<strlen(s1[p]);k++)
       {
           
           
           if(s1[p][k]>s1[p][m])
           {m=k;}
       }       
       for(i=0;i<=m;i++)
       {printf("%c",s1[p][i]);
        
       }
       printf("%s",s2[p]);
       for(j=m+1;j<strlen(s1[p]);j++)
       {
           printf("%c",s1[p][j]);
           
       }
       printf("\n");
       p++;
      }
      while (scanf("%s%s",s1[p],s2[p])!=EOF);


}
int main(){  
   char str[11]={0},substr[4],str1[10][14]={0}; int i,k,j,m=0;
  while(scanf("%s%s",str,substr)!=EOF)
  {  k=0;
   for(i=1;i<strlen(str);i++)
    if(str[i]>str[k])   k=i;
    for(i=strlen(str)+2;i>k+3;i--)
       str1[m][i]=str[i-3];
    for(i=0;i<=k;i++)
      str1[m][i]=str[i];
          j=0;
    for(i=k+1;i<k+4;i++,j++)
      str1[m][i]=substr[j];
     m++;
      } 
   for(i=0;i<m;i++)
   printf("%s\n",str1[i]);
return 0;
}
void main()
{
	int max,i,max_index;
	char str1[20],str2[10],ans[20];
	char *ipstr1=str1;
	while(scanf("%s%s",str1,str2)!=EOF)
	{
		max=0;
		for(i=1;*(str1+i);i++)/*??????????
			???str1[i]??'\0'????????*/
			if(*(str1+i)>max) max=*(str1+i),max_index=i;
		strcpy(ans,"");
		strncat(ans,str1,max_index+1);/*??(max_index+1)?????*/
		strcat(ans,str2);
		strcat(ans,str1+max_index+1);
		/*??(max_index+1)???????????????????????*/
		printf("%s\n",ans);
	}
	
}
int main()
{
	char str[11],sub[4],*max,*p;
	while(cin>>str)
	{
		cin>>sub;
		max=str;
		for(p=str;*p;p++)if(*max<*p)max=p;
		for(p=str;p<=max;p++)cout<<*p;
		cout<<sub<<max+1<<endl;
	}
	return 0;
}
int main()
{
	char t,g,c[100][15]={'\0'},a[100][3];
	int i,b,j,k,h[100];
	for(i=0;;i++)
	{
		scanf("%s %s",c[i],a[i]);
		if(c[i][0]=='\0')break;
	}
	
	b=i+1;
	
	
	for(i=0;i<b;i++)
	{
		
		
		h[i]=strlen(c[i]);
		t=c[i][0];
		for(j=0;j<h[i];j++)
		{
			if(c[i][j]>t)t=c[i][j];
			
		}
		
		
		for(j=0;j<h[i];j++)
		{
			if(c[i][j]==t)
			{
				for(k=(h[i]-1);k>j;k--)
				{
					c[i][k+3]=c[i][k];
				}
				c[i][j+1]=a[i][0];
				c[i][j+2]=a[i][1];
				c[i][j+3]=a[i][2];
				
				break;
			
			}
		}
		printf("%s\n",c[i]);
	}	

	return 0;
}
void main()
{
	char*p1,*p2,*a,*b,c;
	int i,j,k,n;
do
	{
	p1=(char*)malloc(100*sizeof(char));
	p2=(char*)malloc(100*sizeof(char));
	a=(char*)malloc(200*sizeof(char));
	b=(char*)malloc(200*sizeof(char));
	
	strcpy(a," ");
	strcpy(b," ");
	for(i=0,c=*(p1),k=0;*(p1+i)!='\0';i++)
	{
		if(*(p1+i)>c)
		{
			c=*(p1+i);
			k=i;
		}
	}
	strncpy(a,p1,k+1);
	*(a+k+1)='\0';
	strcat(a,p2);
	for(i=k+1,j=0;*(p1+i)!='\0';i++,j++)
	{
		*(b+j)=*(p1+i);
	}
	*(b+j)='\0';
	strcat(a,b);
	puts(a);
	free(a);
	free(b);
	free(p1);
	free(p2);
	}while(scanf("%s%s",p1,p2)!=EOF);
}
void print(int a,int b,char c[])
{int i;
for(i=a;i<=b;i++)
printf("%c",c[i]);
}
int arrange(char a[])
{
	int m=0,i,n;
	n=strlen(a);
	int t=a[0];
		for(i=0;i<n;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;
		m=arrange(a);
		print(0,m,a);
		print(0,l2-1,c);
		print(m+1,l1-1,a);
		printf("\n");

	}
}
int main(int argc, char* argv[])
{
	char str[20],substr[20],str2[20];
	while(scanf("%s%s",str,substr)!=EOF){
	
		int i,j,k,len=strlen(str),max=str[0];
		for(i=0;i<len;i++){
			if(str[i]>max) {
				max=str[i];
				k=i;}}
		for(j=k+1;j<len;j++){
			str2[j-k-1]=str[j];}
		str[k+1]='\0';
		str2[len-k-1]='\0';
		strcat(str,substr);
		strcat(str,str2);
		printf("%s\n",str);
	
	}
	return 0;
}
int main()
{	int i,j,l,t;
	char str[16],t_max,substr[4];
	while(scanf("%s%s",&str,&substr)!=EOF)
	{
		l=strlen(str);
		t_max=-1;
		for (i=0;i<l;i++)
			if (t_max<str[i])
			{
				t=i;
				t_max=str[i];
			}
		for (i=0;i<=t;i++)
			printf("%c",str[i]);
		printf("%s",substr);
		for (;i<l;i++)
			printf("%c",str[i]);
		printf("\n");
	}
	return 0;
}
int main()
{
    int f[300][300];
    char s1[300],s2[300];
    int l1,max,p,i;
       while (scanf("%s%s",s1,s2)!=EOF)
    {
        l1=strlen(s1);
        max=0;p=0;
        for(i=0;i<l1;i++)
           if(s1[i]>max)
           {
             max=s1[i];
             p=i;          
           }
        for(i=0;i<l1;i++)
        {
           printf("%c",s1[i]);              
           if(p==i)
             printf("%s",s2);
        }     
         
        printf("\n");      
    }

}
int main()
{
	char str[14],cmax,substr[4];
	int i,m,j,n;
	while (scanf("%s %s",str,substr)!=EOF)
	{
		cmax=str[0];m=0;
		for(i=1;;i++)
		{
			if(str[i]=='\0') {n=i;break;}
			else if(str[i]>cmax) 
			{
					cmax=str[i];
					m=i;
			}
		}str[n+3]='\0';
		for(i=n+2,j=n-1;;i--,j--)
		{
			str[i]=str[j];
			if(j==m+1) break;
		}
		for(i=m+1,j=0;j<=2;i++,j++)
		{
			str[i]=substr[j];
		}
		printf("%s\n",str);
	}
}
int main()
{
	int i,k;
	char str[13]={0},substr[4]={0},max;
	while(cin>>str)
	{
		cin>>substr;
		max=str[0];                      //?????
		char *p=str,*q=substr;
		for (p=str+1;p<=str+9;p++)
			if (max<*p)
				max=*p;
		for (p=str;p<str+10;p++)               //??????????
			if (*p==max)
				break;
		k=p-str;
		for (p=str+9;p>str+k;p--)    //?????????????
			*(p+3)=*p;
		for (p=str+k+1;p<=str+k+3;p++,q++)           //??????
			*p=*q;
		p=str;
		cout<<p<<endl;
		for (i=0;i<10;i++)               //??????
			str[i]=0;
	}
	return 0;
}
void in(char str[13],char substr[3])
{
	int i,j,k,r;
	for (i=0;i<=9;i++)
	{
		r=1;
		for (j=i;j<=9;j++)
		{
			if(str[i]<str[j])
			{
				r=0;
				break;
			}
		}
		if (r==1)
		{
			for (k=12;k>=i+4;k--)
				{
					str[k]=str[k-3];
				}
				str[i+1]=substr[0];
				str[i+2]=substr[1];
				str[i+3]=substr[2];
				break;
		}
	}
}
void main()
{
	char str[100][13]={0};
	char substr[100][3]={0};
	int i,n;
	char c;
	for(n=0;;n++)
	{
		if((c=getchar())==EOF)
		{
			break;
		}
		else {
			str[n][0]=c;
			scanf("%s %s",&str[n][1],substr[n]);
		}
		in(str[n],substr[n]);	
		
	}
	for (i=0;i<=n-1;i++)
	{
		
		printf("%s\n",str[i]);
	}
}
void main()
{
	char s[14],a[4],max=0;
	int n,i,k,j;
	while(scanf("%s %s",s,a)!=EOF)
	{
		k-0;j=0;max=0;
	n=strlen(s);
	for(i=0;i<n;i++)
	{
		if(s[i]>max) {k=i;max=s[i];}
	}
	
	for(i=n-1;i>k;i--)
	{
		s[i+3]=s[i];
	}


	while(j<=2)
	{
		s[k+j+1]=a[j];
		j++;
	}
	s[n+3]='\0';
	puts(s);
	}

}
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;
}
void main()
{
	
	char ch1[11],a1[4],A[10][14],max;
	int i,j,n,k;
	for(k=0;k<10;k++)
	{
	scanf("%s%s",ch1,a1);
	
    n=strlen(ch1);
	max=ch1[0];
	for(i=0;i<n;i++)
		if(ch1[i]>max)
		{
			j=i;
			max=ch1[i];
		}
		for(i=0;i<=j;i++)
			A[k][i]=ch1[i];
		for(i=j+4;i<n+3;i++)
			A[k][i]=ch1[i-3];
          
		A[k][j+1]=a1[0];
		A[k][j+2]=a1[1];
		A[k][j+3]=a1[2];
		A[k][n+3]='\0';
		if(strcmp(A[k],A[k-1])==0)
			break;
		else
	
		printf("%s\n",A[k]);
		
	}
	
}
int main()
{
	int i,k;
	char str[13]={0},substr[4]={0},max;
	while(cin>>str>>substr)
	{
		max=str[0];                      //?????
		for (i=0;i<9;i++)
			if (max<str[i+1])
				max=str[i+1];
		for (i=0;i<10;i++)               //??????????
		{
			if (str[i]==max)
			{
				k=i;
				break;
			}
		}
		for (i=9;i>k;i--)                //?????????????
			str[i+3]=str[i];
		for (i=k+1;i<=k+3;i++)           //??????
			str[i]=substr[i-k-1];
		cout<<str<<endl;
		for (i=0;i<10;i++)               //??????
			str[i]=0;
	}
	return 0;
}
char * strInsert(char *str, int n, const char *strIn)
{
	int l = strlen(strIn);
	int i;
	for (i=strlen(str);i>n; i--)
		*(str+i+l)=*(str+i);
	for (i=0;i<l;i++)
		*(str+n+1+i)=*(strIn+i);
	return str;
}
void main()
{
	char str[15], substr[4];
	int i, max;
	short flag;
	do
	{
		flag = scanf("%s %s", str, substr);
		if (flag<2) break;
		max = 0;
		for (i=1; i<strlen(&str[0]); i++)
		{
			if (*(str+i)>*(str+max))
			{
				max = i;
			}
		}
		puts(strInsert(str, max, substr));
	}while (getchar()!=EOF);
}
void main()
{
	char a[1000][15],c[1000][14];
	char ch;
	int i,j,k,n=0,b[1000],l;
	for (i=0;i<1000;i++)
	{
		gets(a[i]);
		if (a[i][0]=='\0')
			break;
		n++;
	}
	for (i=0;i<n;i++)
	{
		l=strlen(a[i]);
		ch=a[i][0];
		k=0;
		for (j=0;j<l-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][l-3];
		c[i][k+2]=a[i][l-2];
		c[i][k+3]=a[i][l-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()
{
	char c[100][100];
	int  i=0,j,count,max,m,b[100];
	do
	{
		gets(c[i]);
		b[i]=strlen(c[i]);
		i++;
	}
	while(c[i-1][0]!='\0');
	m=i-1;
	for (i=0;i<m;i++)
	{
		max=0;
		count=0;
		for (j=0;j<b[i]-4;j++)
		{
			if (c[i][j]>max)
			{
				max=c[i][j];
			    count=j;
			}
		}
		for (j=0;j<=count;j++)
		{
			printf("%c",c[i][j]);
		}
		for (j=b[i]-3;j<=b[i]-1;j++)
		{
			printf("%c",c[i][j]);
		}
		for (j=count+1;j<b[i]-4;j++)
		{
			printf("%c",c[i][j]);
		}
		printf("\n");
	}
}
int main()
{
char str[1000][100],substr[1000][300];
int i=0,j,max,m;
char a;
while(scanf("%s %s",str[i],substr[i])!=EOF)
i++;
m=i;
for(i=0;i<m;i++)
{
	a=str[i][0];
for(j=0;str[i][j]!='\0';j++)
{
	if(str[i][j]>a)
	{
		a=str[i][j];
		max=j;
	}
}
for(j=0;j<=max;j++)
printf("%c",str[i][j]);
for(j=0;j<3;j++)
printf("%c",substr[i][j]);
for(j=max+1;str[i][j]!='\0';j++)
printf("%c",str[i][j]);
printf("\n");
}
	return 0;
}
char maxASCII(char *str)
{
     int len= strlen(str);
     int i,j=0;
     for(i=0; i<len; i++){
              if(str[i]> j) j= str[i];
     }
     return j;
}
int maxlocate(char string[], char maxx)
{
     int x;
     for(x=0; x<strlen(string); x++){
              if(string[x] == maxx){
                           return x;
              }
     }
}

int main(int argc, char *argv[])
{
    char str[100][10], substr[100][4];
    int max;      int rank;
    int i,j;      j=0;
    while(scanf("%s%s",str[j],substr[j])!= EOF) j++;
    for(i=0; i<j; i++){
             
            
            max= maxASCII(str[i]);
            rank = maxlocate(str[i], max);
            int a;
            for(a=0; a<=rank; a++){
                     cout << str[i][a];
            }
            cout << substr[i];
            for(a= rank+1; a<strlen(str[i]); a++){
                   cout << str[i][a];
            }                  
            cout << endl;
    }
    
    return EXIT_SUCCESS;
}
int max(char s1[11])
{
	int i,k=0;
	char c=0;
	for(i=0;i<strlen(s1);i++)
	{
		if(s1[i]>c) {c=s1[i];k=i;}
	}
	return(k);
}
void main()
{
	char s1[11],s2[4];
	int i,j,m;
	while (scanf("%s%s",s1,s2)!=EOF)
	{
		m=max(s1);
		for(i=0;i<=m;i++) printf("%c",s1[i]);
		printf("%s",s2);
		for(i=m+1;i<strlen(s1);i++) printf("%c",s1[i]);
		printf("\n");
	}
}
void main()
{
	void f(char*p,char*q,int m);
	char s[12],c[10],sub[4];
	int i,k=0;
	
	while(scanf("%s %s",s,sub)!=EOF)
	{
	for(i=0;s[i]!='\0';i++)
	{
		if(s[i]>s[k])
			k=i;
	}
	for(i=0;i<k+1;i++)
	{
		printf("%c",s[i]);
	}
	printf("%s",sub);
	f(s,c,k+1);
	puts(c);
	}
}

void f(char*p,char*q,int m)
{
	int n;
	n=0;
	while(n<m)
	{n++;p++;}
	while(*p!='\0')
	{*q=*p;
	p++;q++;}
	*q='\0';
}