semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int choose(char str[],int k)
{
	int i,max,maxc;
	maxc=str[0];
    max=0;
	for(i=0;i<k;i++)
	{
		if(str[i]>maxc)
		{
			maxc=str[i];
			max=i;
		}
	}
	return max;
}
main()
{
		static char str[15],substr[4];
        while (scanf("%s%s",str,substr)!=EOF)
	{

	
	int k;
	k=strlen(str);
	int max;
	max=choose(str,k);
	static char cs[11];
	int i;
	for(i=max+1;i<k;i++)
	{
		cs[i]=str[i];
	}
	for(i=max+1;i<=max+3;i++)
	{
		str[i]=substr[i-max-1];
	}
	for(i=max+4;i<k+3;i++)
	{
		str[i]=cs[i-3];
	}
	str[k+3]='\0';
	puts(str);
	}
	return 0;
}
void main()
{
	char str[14]={0},substr[4]={0},max;
	int i,imax,l,j;
	while(scanf("%s%3s",str,substr)!=EOF)
	{
		i=0;
		imax=0;
		max=str[0];
		while(str[i])
		{
			if(str[i]>max)
			{
				max=str[i];
				imax=i;
			}
			i++;
		}
		l=strlen(str);
		for(i=l;i>imax;i--)
			*(str+i+3)=*(str+i);
		for(i=imax+3,j=2;i>imax;i--,j--)
			*(str+i)=*(substr+j);
		puts(str);
	}
}
int max(char a[],int j)
{
	int i,k;
	k=strlen(a);
	for(i=0;i<k;i++)
	{
		if(a[i]>a[j])
		{
			return (0);
		}
	}
	return (1);
}
void cha(char a[],char b[])
{
	int i,k,j;
	k=strlen(a);
	for(i=0;i<k;i++)
	{
		if(max(a,i)==1)
		{
			for(j=0;j<i+1;j++)
				printf("%c",a[j]);
			for(j=0;j<3;j++)
				printf("%c",b[j]);
			for(j=i+1;j<k;j++)
			    printf("%c",a[j]);
			    printf("\n");
				break;
		}
	}
}
void main()
{
	char str[100][11],substr[100][4],d;
	int n=0,i;
	do
	{
		if(n)
		{   
			for(i=1;;i++)
			{
				if((d=getchar())!=' ')
				str[n][i]=d;
				else 
				{ 
				    str[n][i]='\0';
					break;
				}
			}
		}
		else
		{   
			scanf("%s",str[n]);
		}
		    scanf("%s",substr[n]);
			n++;
			d=getchar();
		    str[n][0]=getchar();
	}
	while (str[n][0]!=EOF);
	for(i=0;i<n;i++)
	{
		cha(str[i],substr[i]);
	}
}
void main()
{char s[100][15]={'\0'};
 int i,n,l,a,k,t;
 i=0;
 do
 {gets(s[i]);
  i++;
 }while(s[i-1][0]!='\0');
 n=i-2;
 for(i=0;i<=n;i++)
 {l=strlen(s[i]);
  a=s[i][0];
  for(k=1;k<l-4;k++)
  {if(s[i][k]>a)
     {a=s[i][k];
	  t=k;
     }
  }
  for(k=0;k<=t;k++)
  printf("%c",s[i][k]);
  for(k=l-3;k<=l-1;k++)
  printf("%c",s[i][k]);
  for(k=t+1;k<l-4;k++)
  printf("%c",s[i][k]);			
  printf("\n");
 }		
}
int main()
{
	char str[100],sub[100],*p,*q;
	int i,n,k;
	while(scanf("%s %s",str,sub)!=EOF)
	{
		n=strlen(str);
		q=sub;
        k=0;
		for(i=1;i<n;i++)
		{if(str[i]>str[k])
				k=i;
		}
		for(p=str+n+2;p>str+k+3;p--)
		{
			*p=*(p-3);
		}
		*(str+k+1)=*q;
		*(str+k+2)=*(q+1);
		*(str+k+3)=*(q+2);
		for(p=str;p<str+n+3;p++)
		{	printf("%c",*p);}
		printf("\n");

	}
}
void main()
{
int l=0,m=0,i=0;
char str[20],sub[5];

while (scanf("%s%s",str,sub)!=EOF)
{
l=strlen(str);

for(i=0;str[i]!='\0';i++)
{if (str[i]>str[m]) m=i;}

for(i=l+2;i>=m+4;i--)
{str[i]=str[i-3];}

str[m+1]=sub[0];
str[m+2]=sub[1];
str[m+3]=sub[2];
str[l+3]='\0';

printf("%s\n",str);
}
}
int main()
{
int i, n,N;
char a[100]={0},b[100]={0};
char *p=NULL;
while(cin>>a>>b)
{
	n=strlen(a);
	N=a[0];
for(i=0;i<n;i++)
{
	
  if(a[i]>N)
  { 
   N=a[i];
   p=&a[i]; 
  }
  
}

for(i=0;i<n;i++)
{
cout<<a[i];
if(&a[i]==p)
cout<<b;
}
for(i=0;i<n;i++)
a[i]=0;
for(i=0;i<strlen(b);i++)
b[i]=0;
cout<<endl;
}

return 0;
}
int main()
{
	char a[100][15]={0},d[100][15]={0};
	int i=0,j,n,k=0,cutpoint;
	while (1)
	{   char b[20]={0},c[10]={0},e[4]={0},max;
    
	gets(a[k]);
	
		n=strlen(a[k]);
		for (i=0;i<3;i++)
		{
			e[i]=a[k][n-3+i];
		}
		

		if (a[k][0]==0)
			break;
				max=a[k][0];
		for(i=0;i<n-4;i++)
		{

			
			if(a[k][i]>max)
			{
				max=a[k][i];
	            cutpoint=i;
			}
		}
		for (i=0;i<=cutpoint;i++)
		{
			b[i]=a[k][i];
		}
		for (i=0,j=cutpoint+1;j<n-4;i++,j++)
		{
			c[i]=a[k][j];
		}
		strcat(b,e);
		strcat(b,c);
		strcpy(d[k],b);
     	k++;
	}

	for (i=0;i<k;i++)
		puts(d[i]);	
	return 0;
}
int main()
{
	char str[11],substr[4];
	int len,max,i;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		len=strlen(str);
		max=0;
		for(i=0;i<len;i++)
		{
			if(str[i]>str[max])
			max=i;
		}
		for(i=0;i<=max;i++)
		printf("%c",str[i]);
		for(i=0;i<3;i++)
		printf("%c",substr[i]);
		if(max!=len-1)
		for(i=max+1;i<len;i++)
		printf("%c",str[i]);
		printf("\n");
	}
	return 0;
}
int main()
{
    char str[11],substr[4],x[20];
    int i,n,a;
    while(scanf("%s %s",str,substr)!=EOF)
    {  n=0;
       a=strlen(str);
       for(i=1;i<a;i++)
       {
         if(str[i]>str[n])
         n=i;
       }
       for(i=0;i<n+1;i++)
       {
         x[i]=str[i];
       }
       x[n+1]=substr[0];
       x[n+2]=substr[1];
       x[n+3]=substr[2];
       for(i=n+4;i<a+4;i++)
       {
          x[i]=str[i-3];
       }
       for(i=0;i<a+3;i++)
       {
        printf("%c",x[i]); 
       }
       printf("\n");
    }
}
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;
		
	    len=strlen(str);
       
        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);
	}
}
main()
{
	int i,j;
	int max,l;
	char s1[11],s2[4],s3[20];
	while (scanf("%s%s",s1,s2)!=EOF)
	{
		max=s1[0];
		for(i=1;i<strlen(s1);i++)
			{
			if(s1[i]>max)
			max=s1[i];
			}
		for(i=0;i<strlen(s1);i++)
		{
			if(s1[i]==max)
			{
				l=i;
				break;
			}
		}
		for(i=0;i<=l;i++)
			s3[i]=s1[i];
		for(i=0;i<strlen(s2);i++)
			s3[i+l+1]=s2[i];
		for(i=0;i<strlen(s1)-l-1;i++)
			s3[l+strlen(s2)+1+i]=s1[l+i+1];
		for(i=0;i<strlen(s1)+strlen(s2);i++)
			printf("%c",s3[i]);
		printf("\n");
	}
}
int main()
{
  int len,max=0,mark,i,j;   //?????len?????????,max???????ASCII??mark?????????
  char str[14],substr[4];   //???????????????
  while(cin>>str>>substr)   //?????????????
  {
     len=strlen(str);
     for(i=0;i<len;i++)
     {
         if(str[i]>max)    //???????
         {
            max=str[i];
            mark=i;        //?????????
         }
     }
     max=0;
     for(i=len-1;i>mark;i--)  //?????????????????????
     {
         str[i+3]=str[i];
     }
     for(i=mark+1,j=0;i<mark+4;i++,j++)  //???????????
     {
         str[i]=substr[j];
     }
     for(i=0;i<len+3;i++)
     cout<<str[i];      //??
	 cout<<endl;
  }
  return 0;
}
void main()
{
	int n,i,j=0,m;
	char str[20],substr[5];
    while(scanf("%s %s",str,substr)!=EOF)
	{
		   n=strlen(str);
	       for(i=0;i<n;i++)
		   {
		    if(str[i]>str[j])
			j=i;
		   }
	for(i=n-1;i>=j+1;i--)
		str[i+3]=str[i];
    str[i+1]=substr[0];
    str[i+2]=substr[1];
    str[i+3]=substr[2];
	str[n+3]='\0';
	printf("%s\n",str);
	j=0;
	}
}
void p_s(char str[],char substr[])
{
	int i,n,len;
	char s[13]={"\0"};
	len=strlen(str);
	for(i=0,n=0;i<len;i++)
		if(str[n]<str[i]) n=i;
	for(i=0;i<len+3;i++)
		s[i]= i<=n? str[i]:(i<=n+3? substr[i-n-1]:str[i-3]);
	printf("%s\n",s);
}
void main()
{
	int i,j;
	char str[10][10],substr[10][3];
	for(i=0;scanf("%s %s",str[i],substr[i])!=EOF;i++);
	for(j=0;j<i;j++)
	{
		p_s(str[j],substr[j]);
	}
}
// ?????

void main()
{
	void max(char str[],char sub[]);
	int i,j=0;
	char str[11],sub[4],t;
	do
	{
		if(j)
		{
			for(i=1;;i++)//????????????????
			{
				if((t=getchar())!=' ')
					str[i]=t;
				else
				{
					str[i]='\0';
					break;
				}
			}
		}
		else scanf("%s",str);
		scanf("%s\n",sub);
		max(str,sub);
		j++;
	}while((str[0]=getchar())!=EOF);
}//EOF?????????????????

void max(char str[],char sub[])
{
	int i,m=0,n;
	char r=str[0];
	n=strlen(str);
	for(i=1;i<=n-1;i++)
	{
		if(str[i]>r)
		{
			r=str[i];
			m=i;
		}
	}
	for(i=0;i<=m;i++)
		printf("%c",str[i]);
	for(i=m+1;i<=m+3;i++)
		printf("%c",sub[i-m-1]);
	for(i=m+4;i<n+3;i++)
		printf("%c",str[i-3]);
	printf("\n");
}
main()
{
	char a[11],b[4],c[15];
	int i,m,n;
	while(scanf("%s%s",a,b)!=EOF)
	{
		n=strlen(a);
		m=0;
		for (i=1;i<n;i++)
		{
			if (a[i]>a[m])
			{
				m=i;
			}
		}
		for(i=0;i<=m;i++)
		{
			c[i]=a[i];
		}
		c[m+1]=b[0];
		c[m+2]=b[1];
		c[m+3]=b[2];
		for (i=m+1;i<n;i++)
		{
			c[3+i]=a[i];
		}
		c[3+n]='\0';
		printf("%s\n",c);
	}
	return 0;
}
int main()
{
	while(cin)
	{
		char str[11]={'\0'};
		char substr[4]={'\0'};
		char ansstr[14]={'\0'};
		char cmax=0;
		int point=0;
		cin>>str;
		cin>>substr;
		int length=strlen(str);
		for(int i=0;i<length;i++)
		{
			if(str[i]>cmax)
			{
				cmax=str[i];
				point=i;
			}
		}
		for(int i=0;i<point+1;i++)
			ansstr[i]=str[i];
		for(int i=point+1;i<point+4;i++)
			ansstr[i]=substr[i-point-1];
		for(int i=point+4,j=point+1;i<length+3,j<length;i++,j++)
			ansstr[i]=str[j];
		cout<<ansstr<<endl; 
	}
	return 0;
}
void main()
{
	int m=0,n=0,i=0,j=0,p=0;
	char a[10]={0},b[3]={0};
loop:;
	scanf("%s %s",&a,&b);
	m=strlen(a);
	for(i=0,j=0,p=a[0];i<m;i++)
	{
		if(p<a[i])
		{
			j=i;
			p=a[i];
		}
	}
	for(i=0;i<=j;i++)
	{
		printf("%c",a[i]);
	}
	for(i=0;i<3;i++)
	{
		printf("%c",b[i]);
	}
	for(i=j+1;i<m;i++)
	{
		printf("%c",a[i]);
	}
    printf("\n");
	for(i=0;i<m;i++)
	{
		a[i]='\0';
	}
	for(i=0;i<3;i++)
	{
		b[i]='\0';
	}
	if(getchar()!=EOF)
	goto loop;
}
void main()
{char str[100][11],substr[100][4],a[100][15];
int  q,i,j,k,m,n,x,y;
for(i=1;scanf("%s%s",str[i],substr[i])!=EOF;i++)
{
	x=strlen(str[i]);y=strlen(substr[i]);
	for(j=0;j<=x-1;j++)
    {for(m=0,k=0;k<=x-1;k++)
	if(str[i][j]>=str[i][k])m++;
	if(m==x) {n=j+1;break;}}
    strncpy(a[i],str[i],n);a[i][n]='\0';
	strcat(a[i],substr[i]);
    for(j=n+y;j<x+y;j++)
		a[i][j]=str[i][j-y];
	a[i][x+y]='\0';
	printf("%s\n",a[i]);
}
}
void main()
{
	char str[13],substr[3],out[50][13];
	int maxasc(char a[13]);
	int n,i,max;
	for (n=0;;n++)
	{
		if(scanf("%s",str)==EOF) break;
		scanf("%s",substr);
		max=maxasc(str);
		for(i=strlen(str);i>max;i--)
		{
			str[i+3]=str[i];
		}
		str[max+1]=substr[0];
		str[max+2]=substr[1];
		str[max+3]=substr[2];
		strcpy(out[n],str);
	}
	for(i=0;i<n;i++)
		puts(out[i]);
}
int maxasc(char a[13])
{
	int result,i;
	for(i=0,result=0;i<strlen(a);i++)
		if(a[i]>a[result])
			result=i;
	return result;
}
void main()
{		char str[16],substr[4];
	char output[20];
	char *string,*max;
	int i,j;
	while((scanf("%s",str))!=EOF)
	{

	scanf("%s",substr);
	string=str;
	max=str;
	for(i=0;i<(strlen(str));i++)
	{
		if(*string>*max)
		{
			max=string;
		}
		string++;
	}
	string=str;
	for(i=0;(*string)!=(*max);string++,i++)
	output[i]=*string;
	output[i]=*max;
	max++;
	for(j=i+1;j<=(3+i);j++)
		output[j]=substr[j-i-1];
	for(;j<(strlen(str)+strlen(substr));j++,i++)
		output[j]=str[i+1];
	for(i=0;i<(strlen(str)+strlen(substr));i++)
	printf("%c",output[i]);
	printf("\n");
	}
}
int main()
{
	char string[20]= {'\0'},substring[20]= {'\0'};
    while( scanf("%s%s",string,substring)!=EOF)
    {
        char last[20]= {'\0'},*pointer_begin,*pointer_end;
        int n=0,k=0;

        for(pointer_begin=string,pointer_end=string; pointer_begin-string<strlen(string); pointer_begin++)
            if(*pointer_begin>k)
            {
                k = *pointer_begin;
                pointer_end=pointer_begin;
                n=pointer_end-string;
            }

        strncpy(last,string,n+1);
        printf("%s",last);
        printf("%s",substring);
        printf("%s\n",pointer_end+1);
    }
    return 0;
}
void guocheng(char str[10],char substr[3])
{
 int i,max=0,n,j;
 for(i=0;i<strlen(str);i++)
 if(str[i]>max)
 {
  max=str[i];
  n=i;
 }
 for(j=0;j<=n;j++)
 printf("%c",str[j]);
 printf("%s",substr);
 for(j=n+1;j<strlen(str);j++)
 printf("%c",str[j]);
 printf("\n");
}
main()
{
 char a[100][10],b[100][3];
 int i=0;
 end:
 while(scanf("%s%s",a[i],b[i])!=EOF)
 {guocheng(a[i],b[i]);
 i++;
 goto end;}
}
int main()
{
	while(cin)
	{
		char str[11]={'\0'};
		char substr[4]={'\0'};
		char ansstr[14]={'\0'};
		char cmax=0;
		int point=0;
		cin>>str;
		cin>>substr;
		int length=strlen(str);
		for(int i=0;i<length;i++)
		{
			if(str[i]>cmax)
			{
				cmax=str[i];
				point=i;
			}
		}
		for(int i=0;i<point+1;i++)
			cout<<str[i];
			//ansstr[i]=str[i];
		//for(int i=point+1;i<point+4;i++)
			//ansstr[i]=substr[i-point-1];
		cout<<substr;
		for(int j=point+1;j<length;j++)
			cout<<str[j];
		cout<<endl; 
	}
	return 0;
}
int locate(char str[],int len)
{
int i,a,b;
a=str[0];
b=0;
for(i=1;i<len;i++)
{
	if(a<str[i]) 
		{
			b=i;
	        a=str[i];
	    }
}
return (b+1);
}
main()
{
int i,a,len,lena;
char str[11],substr[4],result[14];
while (scanf("%s%s",str,substr)!=EOF)
{
len=strlen(substr);
lena=strlen(str);
a=locate(str,lena);
for(i=0;i<a;i++)
	result[i]=str[i];
for(i=a;i<len+a;i++)
	result[i]=substr[i-a];
for(i=len+a;i<len+lena;i++)
	result[i]=str[i-len];
result[len+lena]='\0';
puts(result);
}
}
void main()
{
	char c,str[100][100];
	int a,b,e,i=0,j;
	while (gets(str[i])!=0)
	{
		c=0;
		for (j=0;str[i][j]!=' ';j++)
		{
			if (str[i][j]>c)
			{
				c=str[i][j];
				a=j;
			}
		}
		e=j;
		b=strlen(str[i]);
		for (j=0;j<=a;j++)
			printf("%c",str[i][j]);
		for (j=e+1;j<=b-1;j++)
			printf("%c",str[i][j]);
		for (j=a+1;j<=e-1;j++)
			printf("%c",str[i][j]);
		printf("\n");
		i++;
	}
}
int main()
{
	char str[14],substr[4];
	while(cin>>str>>substr){
		int i,j,k = 0,len = strlen(str);
		char max = 1;
		for(i = 0;i < len;i++)
			if(max < str[i])
				max = str[i];
		for(j = 0;j < len;j++)
			if(max == str[j])
				break;
		for(i = len + 2;i > j + 3;i--)
			str[i] = str[i - 3];
		str[len + 3] = '\0';
		for(i = j + 1;i < j + 4;i++)
			str[i] = substr[k++];
		cout<<str<<endl;
	}
	return 0;
}
int main()
{
	int n,i,max,m;
	char str[11],substr[4],temp[10];
	while(scanf("%s %s",str,substr)!=EOF)
	{
		max=str[0];
		n=strlen(str);
		for(i=0;i<n;i++)
		{
			if(str[i]>max) 
			{
				max=str[i];
				m=i;
			}
		}
		for(i=0;i<=m;i++)
		{
			printf("%c",str[i]);
		}
		printf("%s",substr);
		for(i=m+1;i<n;i++)
		{
			printf("%c",str[i]);
		}
		printf("\0");
		printf("\n");
	}
	return 0;
}
void main()
{
	char str[14],substr[4],string[14];
	char max;
	int n,i,j;
	while(scanf("%s %s",str,substr)!=EOF)
	{
		max=str[0];
		n=0;
		for(i=1;str[i]!='\0';i++)
		{
			if(str[i]>max)
			{
				n=i;
				max=str[i];
			}
		}
		for(i=0;i<=n;i++)
			string[i]=str[i];
		for(i=n+1;i<=n+3;i++)
			string[i]=substr[i-n-1];
		for(i=n+4;str[i-3]!='\0';i++)
			string[i]=str[i-3];
		string[i]='\0';
		printf("%s\n",string);
	}
}
void main()
{
  int i,maxnum,max,n;
  char *p1,str1[20],str2[20],strcopy[20],*p3;
  while(scanf("%s %s",str1,str2)!=EOF)
  {
	p1=str1;
	p3=strcopy;
    for(i=0,max=0;str1[i]!='\0';i++)
	if(str1[i]>max) 
	{
	 max=str1[i];
	 maxnum=i;
	}
	strcpy(strcopy,str1);
	*(p3+maxnum+1)='\0';
	strcat(strcopy,str2);
	for(p1=&str1[maxnum+1],p3=&strcopy[maxnum+4];*p1!='\0';p1++,p3++)
		*p3=*p1;
	n=strlen(str1);
	strcopy[n+3]='\0';
	puts(strcopy);
  } 
}
int main()
{
	char str[10];
	char substr[4];
	char str1[10];
	char t;
	int len,i,max;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		len=strlen(str);
		strcpy(str1,str);
		max=0;
		for(i=1;i<len;i++)
			if(str[i]>str[0])
			{
				max=i;
				t=str[i];
				str[i]=str[0];
				str[0]=t;
			}
			for(i=0;i<=max;i++)
				printf("%c",str1[i]);
			for(i=0;i<3;i++)
				printf("%c",substr[i]);
			for(i=max+1;i<len;i++)
				printf("%c",str1[i]);
			printf("\n");
	}
	return 0; 
}
void main()
{
    char str[14],substr[4],c;
    int t,i,l;
    while(scanf("%s%s",str,substr)!=EOF)
    {
      c=str[0];t=0;l=strlen(str);
      for(i=1;str[i]!='\0';i++)
      if(str[i]>c) {c=str[i];t=i;}
      for(i=0;i<=t;i++)
      printf("%c",str[i]);
      for(i=0;i<3;i++)
      printf("%c",substr[i]);
      for(i=t+1;i<l;i++)
      printf("%c",str[i]);
      printf("\n");
    }
}
void main()
{
	void insert(char *a,char *b);
	char str[14],substr[3];
	while (scanf("%s",str)!=-1)
	{
		scanf("%s",substr);
		insert(str,substr);
	}
}

void insert(char *a,char *b)
{
	int i,n=0,m=1,la,lb;
	char c[14]={'\0'};
	la=strlen(a);
	lb=strlen(b);
	for(i=1;i<la;i++)if(*(a+i)>*(a+m-1))m=i+1;
	for(i=0;i<la-m;i++){c[i]=*(a+m+i);*(a+m+i)='\0';}
	strcat(a,b);
	strcat(a,c);
	printf("%s\n",a);
}
int findMax(char *str)
{
    int i,max=*str,ret=0;
    for (i=0;*(str+i);i++)
        if (*(str+i)>max) max=*(str+i),ret=i;
    return ret;
}

void insert(char *str,char *substr,int index)//?substr???str[index]? 
{
     int i;
     char *p;
     //printf("%s\n",str);
     for (p=str+strlen(str);p>str+index;p--)
         *(p+strlen(substr))=*p;
     
     for (i=0;i<strlen(substr);i++)
         *(str+index+1+i)=*(substr+i);
}
int main()
{
    int k;
    char str[11],substr[4];
    //freopen("input.txt","r",stdin);
    //freopen("output.txt","w",stdout);
    while (scanf("%s%s",str,substr)!=EOF)
    {
          k=findMax(str);
          
          insert(str,substr,k);
          printf("%s\n",str);
    }
    return 0;
}
int main()
{
	char str[14],substr[4];
	int i,b,j;	
    while (scanf("%s%s",str,substr)!=EOF)
	{
		b=0;		
		 for(i=0;i<10;i++)
		{if(str[b]<str[i]) b=i;}
		for(i=12;i>(b+3);i--)
			str[i]=str[i-3];
		for(i=(b+1);i<(b+4);i++)
		str[i]=substr[i-b-1];
		printf("%s\n",str);
		for(j=0;j<13;j++)
			str[j]='\0';
	}        
	return 0;
}
int main()
{
	char str[11],substr[4];
	int i,num=0,j,h;
	while(scanf("%s%s",str,substr)!=EOF){
		int max=(int)str[0],len=strlen(str);
		for(i=1;i<len;i++){
			if(max<str[i]){
				max=(int)str[i];
				num=i;
			}
		}
		for(j=0;j<=num;j++){
			printf("%c",str[j]);
		}
		printf("%s",substr);
		for(h=num+1;h<len;h++){
			printf("%c",str[h]);
		}
		printf("\n");
	}
	return 0;
}
void main()
{
	int j;
	char a[13],b[5];
	while(scanf("%s%s",a,b)!=EOF)
	{
		int l=strlen(a);
		int k=0;
		for(j=0;j<l;j++)
		{
			if(a[j]>a[k]) k=j;
		}
		j=0;
		while(j<=k)
		{
			printf("%c",a[j]);
			j++;
		}
		printf("%s",b);
		while(j>k&&j<l)
		{
			printf("%c",a[j]);
			j++;
		}
		printf("\n");
	}
}
void main()
{
	char str[100][50],result[100][50];
	int m,length[100],i=0,j,l,max,p,k,t;
	do
	{
		gets(str[i]);
		i++;
		m=strlen(str[i-1]);
	}
	while(m!=0);
	l=i-1;
	for(i=0;i<l;i++)
	{
		length[i]=strlen(str[i]);
		max=str[i][0];
		p=0;
		for(j=1;j<length[i]-4;j++)
		{
			if(str[i][j]>max)
			{
				max=str[i][j];
				p=j;
			}
		}
		for(j=0;j<=p;j++)
			result[i][j]=str[i][j];
		for(j=p+1;j<=p+3;j++)
			result[i][j]=str[i][length[i]+j-p-4];
		for(j=p+4;j<length[i];j++)
			result[i][j]=str[i][j-3];
		for(j=length[i]-1;j<50;j++)
			result[i][j]='\0';
	}
	for(j=0;j<l;j++)
	{
		t=strlen(result[j]);
		for(k=0;k<t;k++)
			printf("%c",result[j][k]);
		printf("\n");
	}
}
void main()
{
	int i,asc,n=0;
	char str[11],substr[4],*p;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		p=str;
		asc=*p;
		for(i=0;i<strlen(str);i++,p++)
		{
			if(*p>asc)
			{
				asc=*p;
				n=i;
			}
		}
		p=str;
		for(i=0;i<=n;i++)
			printf("%c",str[i]);
		 printf("%s",substr);
		 for(i=n+1;i<strlen(str);i++)
			printf("%c",str[i]);
printf("\n");
	}
}
void main()
{
	char str[11],substr[4],*p;
	int i,j,m;
	while(scanf("%s %s",str,substr)!=EOF)
	{
		m=0;
		p=&str[0];
		for(i=1;*(p+i)!='\0';i++)
		{
			if(*(p+i)>*(p+m))
				m=i;
		}
		for(j=0;j<=m;j++)
			printf("%c",str[j]);
		printf("%s",substr);
		for(j=m+1;*(p+j)!='\0';j++)
			printf("%c",str[j]);
		printf("\n");
	}
}
char * strInsert(char *strDest, int n, const char *strIn)
/* ?strIn???strDest[n]?? */
{
	int l = strlen(strIn);
	int i;
	for (i=strlen(strDest); i>n; i--)
		strDest[i+l] = strDest[i];
	for (i=0; i<l; i++)
		strDest[n+1+i] = strIn[i];
	return strDest;
}

int 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);

	return 0;
}
void main()
{
	char str[100],substr[100],max,a[100],b[100];
	int i,j,k,m,n,t;
	
	while(scanf("%s %s",str,substr)!=EOF)
	{
	
	m=strlen(str);
	max=str[0];
	for(i=0;i<m;i++)
		if(str[i]>max)
		{
			max=str[i];
			t=i;
		}
		strcpy(b,str);
		b[t+1]='\0';
		strcpy(a,b);
		strcat(a,substr);
		n=strlen(a);
		for(i=1;i<m-t;i++)
			a[n+i-1]=str[t+i];
		a[n+i-1]='\0';
		

		printf("%s\n",a);
	}
	




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

           
}
}
void setin(char a[11],char b[4])
{
	int i,stop=0,max;
	max=(int)a[0];
	for(i=0;a[i]!='\0';i++)
	{
		if((int)a[i]>max)
		{
			max=(int)a[i];
			stop=i;
		}
	}
	for(i=0;a[i]!='\0';i++)
	{
		if(i==stop)
		{
			cout << a[i];
			cout << b;
		}
		else cout <<a[i];
	}
	cout << endl;
}
int main()
{
	char a[11]={'\0'},b[4]={'\0'};
	while(cin >> a>>b)
	{
		setin(a,b);
	}
	return 0;
}
void main()
{
	int i,k,n,max; char a[20],b[4];
	while(scanf("%s%s",a,b)!=EOF)
	{
		n=strlen(a);
		k=n-1;
		max=a[n-1];
		for(i=n-1;i>0;i--)
		if(a[i-1]>=max){max=a[i-1];k=i-1;}
		for(i=0;i<=k;i++)printf("%c",a[i]);
		printf("%c%c%c",b[0],b[1],b[2]);
		for(i=k+1;i<=n-1;i++)printf("%c",a[i]);
		printf("\n");
	}
}
void main()
{
	char s1[15],s2[4],s3[20],s4[20],max;
	int i,j,k,n1,n2;
	while(scanf("%s%s",s1,s2)!=EOF)
	{
		
		n1=strlen(s1);
		n2=strlen(s2);
		
		strcpy(s3," ");strcpy(s4," ");
          max=s1[0];
		  for(i=0,k=0;i<n1;i++)
		  {
			  if (s1[i]>max) {max=s1[i];k=i;}
		  }
		  
		  strncpy(s3,s1,k+1);
                    s3[k+1]='\0';
		  strcat(s3,s2);
		  
		  
		  for(i=k+1,j=0;s1[i]!='\0';i++,j++)
		  {
              s4[j]=s1[i];
		  }
                    s4[j]='\0';
		  strcat(s3,s4);
	     printf("%s\n",s3);
	}
	
}
void main()
{
		char str[100][11]={0},substr[100][4]={0},a[100][20]={0},*p,*q,*i;
		int n,t=1,max,x;
		while(scanf("%s %s",str[t],substr[t])!=EOF)
			t++;
		for(n=1;n<=t;n++)
		{
			p=str[n];
			max=str[n][0];
			for(;*p!=0;p++)
				if(*p>max){max=*p;q=p;}
				p=str[n];
				for(x=0;p<=q;x++)
					a[n][x]=*p++;
				a[n][x]=substr[n][0];
				a[n][x+1]=substr[n][1];
				a[n][x+2]=substr[n][2];
                 i=a[n]+x+3;
				 strcpy(i,p);
				 printf("%s\n",a[n]);
		}
	}
void main()
{
	int l=0,i=0;
	char str[11]={""}, substr[3]={""},str2[11]={""};
	char *p;

LOOP:scanf("%s %s",str,substr);
	if (strcmp(str2,str)==0) goto END;
	  l=strlen(str);
	p=str;
	for (i=0;i<l;i++)
	{
		if (*p<str[i])
			p=&str[i];
		else;
	}

	for(i=0;i<l;i++)
	{
		printf("%c",str[i]);
		if (&str[i]==p) printf("%s",substr);

	}
	printf("\n");
	strcpy(str2,str);
goto LOOP;
END:;
}
int main()
{
	 char a[11],b[4];
	char max;
	int i,j,imax;
	while (scanf("%s %s",a,b)!=EOF)
	{


		max=a[0];imax=0;
		for (i=1;;i++)
		{
			if (a[i]==0) break;
			if (a[i]>max) {max=a[i];imax=i;}
		}
		for (j=0;j<=imax;j++)
		{
			printf("%c",a[j]);
		}
		printf("%c%c%c",b[0],b[1],b[2]);//???puts??\n
		for (j=imax+1;;j++)
		{
			if (a[j]==0) {printf("\n");break;}
			printf("%c",a[j]);
		}
	}
	return 0;
}
int main()
{
	char max(char a[10]);
	char a[100][15]={'\0'},b[100][3];
	int i,j;
	for(i=0;;i++)
	{
		scanf("%s %s",a[i],b[i]);
        if(a[i][0]=='\0')break;
	}
	int count=i+1;
	for(i=0;i<count;i++)
    {	
	 int m=strlen(a[i]);
     char c[13]={0};
	 int k=0;
	 for(j=0;j<m;j++)
	 {
		if(k==0) c[j]=a[i][j];
		else if(k>0) c[j+3]=a[i][j];
		if((a[i][j]==max(a[i]))&&(k==0)) {c[j]=a[i][j];c[j+1]=b[i][0];c[j+2]=b[i][1];c[j+3]=b[i][2];k++;}
	 }
	 if(i<count-1) printf("%s\n",c);else if(i==count-1) printf("%s\n",c);
	}
}
char max(char a[10])
{
  int i;char t=a[0];
  for(i=0;i<10;i++)
    if(a[i]>t) t=a[i];
  return(t);
}
int main()
{
char str[20][11], substr[20][4];
int i=0,j,n,l,k,h,x,y;
char a='\0';
while (scanf("%s %s",str[i],substr[i])!=EOF)
{scanf("\n");
i++;}
n=i;
for(i=0;i<n;i++)
{
l=strlen(str[i]);
for(j=0;j<l;j++)
if(str[i][j]>a) a=str[i][j];
k=0;
while(str[i][k]!=a) printf("%c",str[i][k++]);
y=k;
printf("%c",a);
for(h=0;h<3;h++)
printf("%c",substr[i][h]);
for(x=y+1;x<l;x++)
printf("%c",str[i][x]);
printf("\n");
a='\0';

}
return 0;
}
void main()
{
	char c1[20]={0},c2[3]={0},c3[10]={0};
int m,i,j,l,n1,n2,k,max;
for(k=0;k<10000;k++)
{
	scanf("%s %s",&c1,&c2);
		n1=strlen(c1);n2=strlen(c2);
	strcpy(c3,c1);
	for(i=0,max=c1[0];i<n1;i++)
		if(c1[i]>max){max=c1[i];m=i;}else max=max;
	   for(j=m+1,l=0;j<=i+n2,l<n2;j++,l++)
		   c1[j]=c2[l];
	   for(j=m+n2+1,l=m+1;j<n1+n2,l<n1;j++,l++)
		   c1[j]=c3[l];
	printf("%s\n",c1);
	for(i=0;i<n1+n2;i++)c1[i]=0;
	for(i=0;i<n2;i++)c2[i]=0;
}
}