semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{
	char str[30][10];
	char substr[30][3];
	char ans[30][13];
	char max;
	char *a,*b,*c,*d;
	int i,j,k,l,m,n;
	for(i=0;i<30;i++)
	{
		if(scanf("%s%s",str[i],substr[i])==EOF)break;
		l=strlen(str[i]);
		max=str[i][0];
		for(j=1;j<l;j++)
			if(max<str[i][j])max=str[i][j];
		for(j=0;j<l;j++)
			if(max==str[i][j])break;
		a=&str[i][0];
		b=&substr[i][0];
		c=&str[i][j+1];
		for(k=0;k<j+1;k++)
			ans[i][k]=*(a+k);
		for(m=0;m<3;k++,m++)
			ans[i][k]=*(m+b);
		for(n=0;j+1+n<l;n++,k++)
			ans[i][k]=*(c+n);
		ans[i][k]='\0';
		
	}
	for(j=0;j<i;j++)
	{
		l=strlen(ans[j]);
		for(k=0;k<l-1;k++)
		{
			d=ans[j];
			printf("%c",*(d+k));
		}
		printf("%c\n",*(d+k));
	}
}
int main()
{
	char a[14]={' '};
	char b[4]={' '};
	while(cin.get(a,11,' '))
	{
		cin.get();
		cin.get(b,4,'\n');
		int k=0;
		char max=NULL;
		for(int j=0;j<strlen(a);j++)
			if(a[j]>max)
			{
				max=a[j];
			    k=j;
			}
		for(int i=strlen(a)-1;i>k;i--)
			a[i+3]=a[i];
		a[k+1]=b[0];
		a[k+2]=b[1];
		a[k+3]=b[2];
		cout<<a<<endl;
		for(int p=0;p<14;p++)
			a[p]='\n';
	}
	return 0;
}
void main()
{
	int n,i,j;
	char *str,*substr;
	int max;
	str=(char*)malloc(20*sizeof(char));
	substr=(char*)malloc(20*sizeof(char));
	while(scanf("%s%s",str,substr)!=EOF)
	{
		n=strlen(str);
		max=0;
		for(i=0;i<n;i++)
		{
			if(*(str+i)>max)
				max=*(str+i);
		}
		for(i=0;i<n;i++)
		{
			if(*(str+i)==max)
			{
				for(j=0;j<=i;j++)
					printf("%c",*(str+j));
				printf("%s",substr);
				if(i==n-1)
				{
					printf("\n");
					break;
				}
				for(j=i+1;j<n-1;j++)
					printf("%c",*(str+j));
				printf("%c\n",*(str+n-1));
				break;
			}
		}
	}
}
void main()
{
       int len1;
	   char str1[1000],str2[1000],*p,*p1,*p2,*p0,max;
	   while((scanf("%s",str1))!=EOF)
	   {
		   gets(str2);
		   len1=strlen(str1);
		   p2=str2;p1=str1;
			   max=str1[0];
		   for(p=str1;p<str1+len1;p++)
		    if(max<*p) 
			{
				   max=*p;
				   p0=p;
			}
			for(;p1<str1+len1;p1++)
			{
				if(p1==p0) 
				{
					printf("%c",*p1);
					for(;*p2!='\0';p2++)
					{
						if(*p2==' ') continue;
					    else printf("%c",*p2);
					}
				}
				if(p1!=p0)
			 	printf("%c",*p1);
			
			}	printf("\n");
	   }
}
void main()
{
	char a[1000][13];
	char c[1000][17];
	char b[1000][3];
	int n=0,i=0,j,m,k;
	
	for(i=0;i<1000;i++)
	{
		gets(c[i]);
		if(c[i][0]=='\0')
		{
			n=i;
			break;
		}

		for(j=0;j<17;j++)
		{
			if(c[i][j]==' ')
			{
				for(k=0;k<j;k++)
				{
					a[i][k]=c[i][k];
					a[i][j]='\0';
				}
				for(k=0;k<3;k++)
				{
					b[i][k]=c[i][k+j+1];
				}
			}
		}
	}

	for(i=0;i<n;i++)
	{
		m=0;
		for(j=0;j<(int)strlen(a[i]);j++)
		{
			if(a[i][j]>a[i][m])m=j;
		}
		for(j=9;j>m;j--)
		{
			a[i][j+3]=a[i][j];
		}
		for(j=0;j<3;j++)
		{
			a[i][m+j+1]=b[i][j];
		}
	}
	for(i=0;i<n;i++)
	{
		printf("%s\n",a[i]);
	}
}
void main()
{
	void insert(char str[],char temp[4]);
	char str[10][15]={'\0'},temp[4];
	int i,j;
	char c;

	for(i=0;;i++)
	{
		if((c=getchar())==EOF)break;
		else
		{
			str[i][0]=c;
			for(j=1;;j++)
			{
				if((c=getchar())==' ')break;
				str[i][j]=c;
			}
		}
		gets(temp);
		insert(str[i],temp);
		printf("%s\n",str[i]);
	}
}

void insert(char str[],char temp[4])
{
	int i,j = 0,temp2=strlen(str);
	for(i=1;i<temp2;i++)
	{
		if(str[i]>str[j])
			j=i;
	}
	for(i=(strlen(str))-1;i>j;i--)
		str[i+3]=str[i];
	for(i=0;i<3;i++)
		str[j+i+1]=temp[i];
}
int main()
{
    char s,s1[100],s2[100],k=0,j=0,len,i,h;
    int max=-2000;
    while(scanf("%c",&s)!=EOF)
    {
        if(s=='\n')
        {
            s2[j]='\0';
            j=0;
            k=0;
            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");
        }
        else if(s==' ')
        {
            s1[j]='\0';
            j=0;
            k=1;
        }
        else 
        {
            if(k)
            {
                s2[j]=s;
                j++;
            }
            else
            {
                s1[j]=s;
                j++;
            }
        }
    }
    getchar();
    getchar();
    
}
void main()
{
	char s[16];
	s[15]=0;
	int i,len,p=15;
	while(gets(s)!='\0')
   {
		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");
	}
}
int main()
{
     int i,mark,n,m,k;
     char str[13],substr[13];
     char a[26];
     while(scanf("%s %s",str,substr)!=EOF)
     {
           n=strlen(str);
           m=strlen(substr);
           mark=0;
           for(i=0;i<n;i++)
               if(str[i]>str[mark])  mark=i;
           for(i=0;i<mark+1;i++)
               a[i]=str[i];
           for(;i<mark+m+1;i++)
               a[i]=substr[i-mark-1];
           for(;i<n+m;i++)
               a[i]=str[i-m];
           a[i]='\0';
           printf("%s\n",a);
     }
}
int max(char x[])
{
	int m,i,n=0;
	char a=x[0];
	m=strlen(x);
	for(i=1;i<=m-1;i++)
	{
		if(x[i]>a)
		{
			a=x[i];
			n=i;
		}
	}
	return n;
}
void main()
{
	int n,l,j;
	char sa[14];
	char str[11],substr[4];
	while(scanf("%s%s",str,substr)!=EOF)
		 {
	 	l=strlen(str);
		n=max(str);
		for(j=0;j<=n;j++)
			sa[j]=str[j];
		for(j=n+1;j<=n+3;j++)
			sa[j]=substr[j-n-1];
		for(j=n+4;j<=l+2;j++)
			sa[j]=str[j-3];
		sa[l+3]='\0';
		printf("%s\n",sa);
		 }
}
void main()
{
	char str[14],substr[4];
	int n,i,k;
		scanf("%s %s",str,substr);
		n=strlen(str);
		k=0;
		for (i=1;i<n;i++)
			if (str[i]>str[k]) k=i;
		for (i=n+3-1;i>=k+1+3;i--) str[i]=str[i-3];
		str[k+1]=substr[0];
		str[k+2]=substr[1];
		str[k+3]=substr[2];
		for (i=0;i<=n+3-1;i++) printf("%c",str[i]);
				for (i=0;i<=13;i++) str[i]='\0';

	for(;;)
	{
		scanf("%s %s",str,substr);
		if (str[0] == '\0') break;
		n=strlen(str);
		k=0;
		for (i=1;i<n;i++)
			if (str[i]>str[k]) k=i;
		for (i=n+3-1;i>=k+1+3;i--) str[i]=str[i-3];
		str[k+1]=substr[0];
		str[k+2]=substr[1];
		str[k+3]=substr[2];
		printf("\n");
		for (i=0;i<=n+3-1;i++) printf("%c",str[i]);
		for (i=0;i<=13;i++) str[i]='\0';
	}
}
void main()
{
	char input[20];
	while(gets(input)!=NULL)
	{
		char a[15],b[5];
		sscanf(input,"%s %s",a,b);
		char* ptr=a;
		char* insert=a;
		char temp=*ptr;
		while(*(ptr)!='\0')
		{
			if(*(ptr)>temp)
			{
				temp=*(ptr);
				insert=ptr;
			}
			ptr++;
		}
		char* move=ptr+3;
		while(ptr!=insert)
		{
			*move=*ptr;
			move--;
			ptr--;
		}
		move=b;
		ptr++;
		while(*(move)!='\0')
		{
			*ptr=*move;
			move++;
			ptr++;
		}
		printf("%s\n",a);
	}
}
int main()
{

	int i,j,n,max,maxspot,k=0,l;
	char str[100][11],substr[100][4];
	
	while(scanf("%s%s",str[k],substr[k])!=EOF)
	k++;
	
	
	for(l=0;l<k;l++)
	{
	
	n=strlen(str[l]);
	max=str[l][0];
	maxspot=0;
	for(i=0;i<n;i++)
	{
		if(str[l][i]>max)
		{
			max=str[l][i];
			maxspot=i;
		}
	}
	for(j=0;j<maxspot+1;j++)
		printf("%c",str[l][j]);
	printf("%s",substr[l]);
	for(j=maxspot+1;j<n;j++)
		printf("%c",str[l][j]);
	printf("\n");
	
	}

	

	return 0;
}
int main()
{
    char str[11],substr[4];
    int i,j,m,n;
   while(scanf("%s%s",str,substr)!=EOF)
    {
    
    m=strlen(str);
    j=0;
    n=str[0];
    for(i=1;i<m;i++)
    if(str[i]>n)
    {j=i;n=str[i];}
    for(i=0;i<=j;i++)
    printf("%c",str[i]);
    printf("%s",substr);
    for(i=j+1;i<m;i++)
    printf("%c",str[i]);
    printf("\n");
    }
   return 0;
   
}
void main()
{
	int i,j=0,n,p;
	char str[100][50],sub[100][50],c[100],t;
	c[0]=getchar();
	do
	{
		p=-1;
		t=c[j];
		scanf("%s%s",str[j],sub[j]);

		for(i=0;i<strlen(str[j]);i++)
		{
			if(str[j][i]>t)
			{
				p=i;
				t=str[j][i];
			}
		}
		for(i=strlen(str[j]);i>p;i--)str[j][i+(n=strlen(sub[j]))]=str[j][i];
		for(i=0;i<n;i++)str[j][p+1+i]=sub[j][i];
		j++;
		c[j]=getchar();
	}while(c[j]==10);
	for(i=0;i<j;i++)printf("%c%s\n",c[i],str[i]);
}
int main()
{
    char str[14],substr[4];
    int l,max,n,i;
    while(cin>>str>>substr)
    {
        l=strlen(str);
        max=str[0];n=0;
        for(i=0;i<l;i++)
        {
            if(str[i]>max)
            {
                max=str[i];
                //cout<<i<<" ";
                n=i;              
            }         
        }
        for(i=l+3;i>=n+4;i--)
        {
            str[i]=str[i-3];                     
        }
        str[n+1]=substr[0];
        str[n+2]=substr[1];
        str[n+3]=substr[2];
        cout<<str<<endl;       
                
    }
    return 0;    
}
void main()
{
	char str[100][10] ,substr[100][3],s,str1[100][30]={0},str2[100][10]={0};
 int j,i=0,n,b,c;
  while(scanf("%s %s",str[i],substr[i])!=EOF)
  {      
    n=strlen(str[i]);
        s=str[i][0];
        for(j=1;j<n;j++)
     {
      if(str[i][j]>s) 
      {
       s=str[i][j];
       b=j;
      }
     }
		for(c=0,j=0;c<=b;c++,j++)
   str1[i][c]=str[i][j];
   for(c=0,j=b+1;j<n;c++,j++)
    str2[i][c]=str[i][j];
   strcat(str1[i],substr[i]);
   strcat(str1[i],str2[i]);
   printf("%s\n",str1[i]);
   i++;
   }
}
/*void InsertSort(int[],int);
void InsertSort(int pData[],int Count)
{
int iTemp;
int iPos;
int i;
for(i=1;i<Count;i++)
              {
               iTemp = pData[i];
               iPos = i-1;
               while((iPos>=0) && (iTemp<pData[iPos]))
                               {
                                 pData[iPos+1] = pData[iPos];
                                 iPos--;
                               }
               pData[iPos+1] = iTemp;
             }
} */
void main()
{
	int i=0,j,k,m;
	int max[100];
	char str[100][100],substr[100][100];
	memset(max,0,sizeof(int)*100);
	while(scanf("%s %s",&str[i],&substr[i])!=EOF){
	i++;}//
	for(j=0;j<i;j++){
		for(k=0;k<strlen(str[j]);k++)
			if(str[j][k]>str[j][max[j]])max[j]=k;}
	for(j=0;j<i;j++){k=0;
		while(k<=max[j]){putchar(str[j][k]),k++;}
		for(m=0;m<strlen(substr[j]);m++)putchar(substr[j][m]);
		while(k<strlen(str[j])){putchar(str[j][k]),k++;}
	putchar('\n');}
}
int main()
{
	char str[11],substr[4];
	char maxs;
	int j,max;
	while(scanf("%s%s",str,substr)!=EOF)  //???%s?????scanf????????
	{
		max=0;
		maxs=str[0]; //????strcpy??
		for(j=1;j<strlen(str);j++)
		{
			if(str[j]>maxs) {max=j;maxs=str[j];}
		}
		for(j=0;j<=max;j++) printf("%c",str[j]);
		printf("%s",substr);
		for(j=max+1;j<strlen(str);j++)
		{
			if(str[j]=='\0') break;
			else printf("%c",str[j]);
		}
		printf("\n");
	}	
	return 0;
}
int main()
{
	char s1[MAX],s2[MAX];
	int i,j,max;
	while (scanf("%s%s",s1,s2)!=EOF)
	{
		max=0;i=1;
		while(s1[i]!='\0')
		{
			if(s1[max]<s1[i])max=i;
			i++;
		}
	i=0;
	while(i<=max)
	{
		putchar(s1[i]);
		i++;
	}
	j=0;
	while(s2[j]!='\0')
	{
		putchar(s2[j]);
		j++;
	}
	while(s1[i]!='\0')
	{
		putchar(s1[i]);
		i++;
	}
	printf("\n");
}
  return 0;
}
int max_number(char *q,int n)
{
	int j,m=1,t=*q;
	for(j=1;j<n;j++)
	{
		if(t<*(q+j))
		{
			t=*(q+j);
			m=j+1;
		}
	}
		return m;
}

void main()
{
	int i,n,m;
	char str[14],substr[4],*p[2]={str,substr};
	while(scanf("%s%s",p[0],p[1])!=EOF)
	{
		n=strlen(p[0]);
		m=max_number(p[0],n);
	/*	printf("%d",m);*/
		for(i=n-m;i>0;i--)
			*(p[0]+m+i+2)=*(p[0]+m+i-1);
		*(p[0]+n+3)='\0';
		for(i=0;i<3;i++)
			*(p[0]+m+i)=*(p[1]+i);
		puts(str);
	}
}
void main()
{
	char str[15],substr[4];
	int flag,max,length,i;
	flag=0;
	while (scanf("%s%s",str,substr)==2)
	{
		max=0;
		length=strlen(str);
		for (i=0;i<=length-1;i++)	if (str[i]>str[max]) max=i;
		for (i=length-1;i>=max+1;i--) str[i+3]=str[i];
		str[length+3]='\0';
		for (i=0;i<=2;i++) str[max+1+i]=substr[i];
		if (flag) printf("\n");
		else flag=1;
		printf("%s",str);
	}
}
int fmax(char str[]);

int main()
{
	char str[11],substr[4],rstr[14];
	int i;
	while (cin.getline(str,12,' ')&&cin.getline(substr,4))
	{
		for (i=0;i<=fmax(str);i++)
			rstr[i]=str[i];
		for (i=0;i<3;i++)
			rstr[fmax(str)+1+i]=substr[i];
		for (i=0;i<strlen(str)-fmax(str)-1;i++)
			rstr[fmax(str)+4+i]=str[fmax(str)+i+1];
		rstr[fmax(str)+4+i]='\0';
		cout<<rstr<<endl;
	}
	return 0;
}

int fmax (char str[])
{
	int max=0,i;
	for (i=0;i<strlen(str);i++)
		max=(str[i]>str[max]? i:max);
	return max;
}
int max(char a[])
{
	int i,m=0;
	for(i=1;a[i]!=0;i++)
	{
		if(a[m]<a[i]) m=i;
		else continue;
	}
	return m;
}
void cao(char a[],char b[])
{
	int i,m=0;
	char c[10]={0};
	for(i=max(a)+1;a[i]!=0;i++)
	{
		c[m]=a[i];
		m++;
		a[i]=0;
	}
	strcat(a,b);
	strcat(a,c);
}
int main()
{
	char a[12]={0},b[4]={0};
	int i;
	while(scanf("%s%s",a,b)!=EOF)
	{
		cao(a,b);
		puts(a);
		for(i=0;i<12;i++) a[i]=0;
		for(i=0;i<4;i++) b[i]=0;
	}
}
int main()
{
	char str[11],substr[4];
	while(scanf("%s%s",str,substr)!=EOF)
	{
		int i,pos=0;
		for(i=1;str[i];i++)
			if(str[i]>str[pos])
				pos=i;
		for(i=0;i<=pos;i++)
			printf("%c",str[i]);
		printf("%s",substr);
		while(str[i])
			printf("%c",str[i++]);
		printf("\n");
	}
	return 0;
}
int main()
{char p[10];
	while(cin>>p)
	{
		char b[4];int max=0,i,j,len1;
		cin>>b;
		char ma=*p;
		len1=strlen(p);
       for(i=0;i<len1;i++)
		   if(p[i]>ma)
		   {ma=p[i];max=i;  }
		 
		   for(j=0;j<=max;j++)
			   cout<<p[j];
		   cout<<b;
		   for(j=j;j<len1;j++)
			   cout<<p[j];
		   cout<<endl;
		   
	}
}
void main()
{
char str[10],substr[3],res[15],max;
int i,j,l,k;
while(scanf("%s %s",str,substr)!=EOF)
{
	l=strlen(str);max=str[0];
	for(i=0;i<l;i++)
    if(max<str[i]) max=str[i];
	for(i=0;i<l;i++)
	{if(str[i]!=max) res[i]=str[i];
	else {res[i]=str[i];i++;break;}}
	for(j=0;j<3;j++)
		res[i+j]=substr[j];
	for(;i<l;i++)
        res[i+j]=str[i];
	for(k=0;k<i+j;k++)
	printf("%c",res[k]);
	printf("\n");
}
}
void main()
{
char s1[100],s2[100],s3[100];
int m;
while (scanf("%s %s",s1,s2)!=EOF)
{
m=strlen(s1);
int k=0;
int j;
for(j=1;j<m;j++)
if(s1[j]>s1[k]) k=j;
for(j=0;j<=k;j++)
s3[j]=s1[j];
s3[k+1]=s2[0];
s3[k+2]=s2[1];
s3[k+3]=s2[2];
for(j=k+4;j<m+3;j++)
s3[j]=s1[j-3];
for(j=0;j<m+3;j++)
printf("%c",s3[j]);
printf("\n");
}
}
void main()
{
	char str[15],nstr[15];
	char maxchar='\0';
	int i,j,len,max=0;
	while(1)
	{
		maxchar='\0';
		if ((str[0]=getchar())==EOF)
			exit(-1);
		gets(&str[1]);
		len = strlen(str);
		for(i=len-5;i>=0;i--)
		{
			if (str[i]>=maxchar)
			{
				max=i;
				maxchar=str[i];
			}
		}
		for(i=0;i<=max;i++)
		{
			nstr[i]=str[i];
		}
		for(i=max+1;i<len-4;i++)
		{
			nstr[i+3]=str[i];
		}
		for(i=len-3,j=1;i<len;i++,j++)
		{
			nstr[max+j]=str[i];
		}
		nstr[len-1]='\0';
		printf("%s\n",nstr);		
	}
}
int main()
{
	char s1[100][11],m[100]={0},n[100]={0},s2[100][11];
	int i,j,lenth1[100],lenth2[100];
	i=0;
	for (j=0;j<=99;j++)
	{
		if 	(scanf("%s%s",s1[j],s2[j])!=EOF)
		{
			lenth1[j]=strlen(s1[j]);
			for (i=0;i<lenth1[j];i++)
			{
				if (((int) s1[j][i])>((int) m[j]))
				{
					m[j]=s1[j][i];
					n[j]=i;
				}
			}
			for (i=0;i<lenth1[j];i++)
			{
				printf("%c",s1[j][i]);
				if (i==n[j])
				{
					printf("%s",s2[j]);
				}
			}
			printf("\n");
		}
	}
}
void main()
{
	int i,j,k,max;
	char str[11],substr[4];
	while(scanf("%s %s",str,substr)!=EOF)
	{
		max=0;
		for(i=1;i<strlen(str);i++)
		{
			if(str[i]>str[max])
			{
				max=i;
			}
		}
		for(j=0;j<max+1;j++)
		{
			printf("%c",str[j]);
		}
		for(k=0;k<3;k++)
		{
			printf("%c",substr[k]);
		}
		for(j=max+1;j<strlen(str);j++)
		{
			printf("%c",str[j]);
		}
		printf("\n");
	}
}
int main()
{
	char str1[50],str2[50];
	int i,k,n,m;
	while(scanf("%s%s",str1,str2)!=EOF)
	{
         k=0;
		 m=strlen(str1);
		for(i=0;i<m;i++)
		{
			if(str1[i]>str1[k])
				k=i;
		}
		n=strlen(str2);
		for(i=strlen(str1);i>k;i--)
			str1[i+n]=str1[i];
			for(i=0;i<n;i++)
				str1[k+1+i]=str2[i]; 
			printf("%s\n",str1);
	}
	return 0;
}
void cha(char str[100])
{
	char substr[10],res[1000],giant,*p,*q,*t;
	int i,max,n,m;
	scanf("%s",substr);
	n=strlen(str);
	max=0;
	p=str;
	giant=*p;
	for(i=0;i<n;i++)
	{
		if(*(p+i)>giant)
		{
			giant=*(p+i);
            max=i;
		}
	}
	p=str;
	q=res;
	t=substr;
	m=strlen(substr);
	strncpy(q,p,max+1);
	strcpy(q+max+1,t);
	strcpy(q+max+m+1,p+max+1);
	puts(res);
}
void main()
{
   char str[100];
   while(scanf("%s",str)!=EOF)
	   cha(str);
}
int main()
{
int i,j,n,mark;
char s1[11],s2[4];
while(scanf("%s%s",s1,s2)!=EOF)
{
n=strlen(s1);
for(i=0;i<n;i++)
{
for(j=0,mark=1;j<n;j++)
{
if(s1[i]<s1[j])
{
mark=0;
break;
}
}
if(mark)
{
for(j=0;j<=i;j++)
printf("%c",s1[j]);
printf("%s",s2);
for(j=i+1;j<n;j++)
printf("%c",s1[j]);
printf("\n");
break;
}
}
}
return 0;
}
void main()
{
	char str[14], sub[4],m;
	int d,i,l;
	while(scanf("%s %s",str,sub)!=EOF)
	{
		l=strlen(str);
		m=0;
		for(i=0;i<l;i++)
		{
			if(str[i]-m>0) 
			{
				d=i;
				m=str[i];
			}
		}
		for(i=l-1;i>d;i--) str[i+3]=str[i];
		for(i=0;i<3;i++) str[i+d+1]=sub[i];
		str[l+3]='\0';
		printf("%s\n",str);
	}
}
int max(char a[11])
{
	int i,n,m;
	n=strlen(a);
	m=0;
	for(i=0;i<n-1;i++)
		if(a[m]<a[i+1])
			m=i+1;
		return(m);
}

void main()
{
	int i,len,m;
	char a[11],b[4];
	while (scanf("%s%s",a,b)!=EOF)
	{
		len=strlen(a);
		m=max(a);
		for(i=0;i<=m;i++)
			printf("%c",a[i]);
		for(i=0;i<3;i++)
			printf("%c",b[i]);
		for(i=m+1;i<len;i++)
			printf("%c",a[i]);
        printf("\n");
	}
	
}
void main()
{
	char str[50][10]={0},substr[50][3]={0},a[50][13]={0},max[50]={0},c[50][14]={0};
	int len[50],i,n,j,num[50],k,cl[50];
	for(i=0;;i++)
	{
		gets(c[i]);
	    cl[i]=strlen(c[i]);
		if(cl[i]==0)
			break;
		for(j=0;j<cl[i];j++)
		{
			if(c[i][j]!=' ')
            {str[i][j]=c[i][j];}
			else
			{
				k=j;break;
			}
		}
		for(j=k+1;j<cl[i];j++)
		{
			substr[i][j-k-1]=c[i][j];
		}
	}
	n=i;
	for(i=0;i<n;i++)
	{
		len[i]=strlen(str[i]);
		for(j=0,max[i]=str[i][0];j<len[i];j++)
		{
			if(str[i][j]>max[i])
			{	max[i]=str[i][j];num[i]=j;}
		}
		for(j=0;j<(len[i]+3);j++)
		{
			k=j-num[i]-1;
			if(j<=num[i])
			{a[i][j]=str[i][j];}
			else
			{
                if(j<=(num[i]+3))
				{a[i][j]=substr[i][k];}
				else
				{a[i][j]=str[i][j-3];}
			}
		}
		printf("%s\n",a[i]);
	}
}
void main()
{
	char str[1000][10],substr[1000][3],finalstr[1000][13];
	int n,i,j,l,k;
	for(i=0;scanf("%s%s",str[i],substr[i])!=EOF;i++)
	{
	}
	n=i;
	for(k=0;k<n;k++)
	{
		l=strlen(str[k]);
	for(i=0;i<l;i++)
	{
		for(j=0;j<l;j++)
		{
			if(str[k][i]<str[k][j])
				break;
		}
		if(j==l)
		{
			break;
		}
	}
	for(j=0;j<=i;j++)
		finalstr[k][j]=str[k][j];
	for(j=0;j<3;j++)
		finalstr[k][i+j+1]=substr[k][j];
	for(j=1;j<l-i;j++)
		finalstr[k][i+3+j]=str[k][i+j];
		finalstr[k][i+3+j]='\0';
	}
		for(i=0;i<n;i++)
		printf("%s\n",finalstr[i]);
}
void main()
{
	char a[100][100],b[100][100],s[100][100];
	int i=0,j=0,k,m,n,count,lon[100];
	gets(s[0]);
	lon[0]=strlen(s[0]);
	n=1;
	for(i=1;s[i-1][0]!='\0';i++)
	{
		gets(s[i]);
		lon[i]=strlen(s[i]);
		n++;
	}
	n--;
	for(i=0;i<n;i++)
	{
		k=0;
		for(j=1;s[i][j]!=32;j++)
		{
			
			if(s[i][j]>s[i][k])
				k=j;
		}
		for(j=0;j<=k;j++)
			printf("%c",s[i][j]);
		for(j=lon[i]-3;j<lon[i];j++)
			printf("%c",s[i][j]);
		for(j=k+1;s[i][j]!=32;j++)
			printf("%c",s[i][j]);
		printf("\n");
	}
}
int main()
{
	char str[15],substr[4];
	while(cin>>str>>substr)
	{
		int i, position, length;
		char max = str[0];
		length = strlen(str);
		for(i = 1;i < length; i++)
		{
			if(str[i] > max)
			{
				max = str[i];
				position = i;
			}
		}
		for(i = length - 1; i >= position + 1; i--)
			str[i + 3] = str[i];
		for(i = position + 1; i < position + 4; i++)
			str[i] = substr[i - position - 1];
		str[length + 3] = '\0';
		cout<<str<<endl;
	}
	return 0;
}
void charu(char str[10],char substr[4],int n)
{
    int i,k;
    char nstr[13];
    char max;
    
    for(i=n;i>=0;i--)
    {if(str[i]>=max)
    {max=str[i];
    k=i;}}
    
    for(i=0;i<=k;i++)
    nstr[i]=str[i];
    for(i=0;i<=2;i++)
    nstr[i+k+1]=substr[i];
    for(i=k+4;i<=n+3;i++)
    nstr[i]=str[i-3];

    puts(nstr);
    
}   

main()
{
      char s1[10],s2[4];
      int i;
      
      while (scanf("%s%s",s1,s2)!=EOF)
      {
      for(i=0;s1[i]!='\0';i++);
      charu(s1,s2,i);
      }
      

}
void main()
{   int mas(char str[10]);
 
	int i,length,k;
	char str[11],substr[3],strs[13],strw[11];
	
	do
	{
    strcpy(strw,str);
	scanf("%s %s",str,substr);
	length=strlen(str);
	if(strcmp(strw,str)==0) break;

	k=mas(str);
	for(i=0;i<k;i++)
		strs[i]=str[i];
	for(i=0;i<3;i++)
		strs[k+i]=substr[i];
	for(i=0;i<length-k;i++)
		strs[k+3+i]=str[k+i];
	for(i=0;i<length+2;i++)
		printf("%c",strs[i]);
	printf("%c\n",strs[length+2]);
	}while(strlen(str)<11);
	//while(str[0]!='\0');
	
}
int mas(char stra[10])
{
	int i,k=0,j,length,m=0;
     length=strlen(stra);
	for(i=0;i<length;i++)
	{   m=0;
		for(j=0;j<length;j++)
		{	
			if(stra[i]<stra[j])
				m++;
		}
			if(m==0)
			{	k=i+1;
			break;}
			
		
	}
	 return(k);
}
void main()
{
	int i,j,k,n,m,len[100];
	char a[100][19],str[100][10],substr[100][3],max;
	for(i=0;i<100;i++)
		for(j=0;j<19;j++)
			a[i][j]='\0';
	gets(a[0]);
	for(i=1;;i++)
	{
		if(strlen(a[i-1])==0)break;
		else 
		{
			gets(a[i]);
		}
	}
	n=i;
	for(i=0;i<n;i++)
	{
		len[i]=strlen(a[i]);
		a[i][len[i]-4]='\0';
		substr[i][0]=a[i][len[i]-3];
		substr[i][1]=a[i][len[i]-2];
		substr[i][2]=a[i][len[i]-1];
	}

	for(i=0;i<n;i++)
	{
		max=0;
		for(j=0;a[i][j]!='\0';j++)
			max=max>a[i][j]?max:a[i][j];
		for(j=0;a[i][j]!=max;j++)
			printf("%c",a[i][j]);
		printf("%c",max);
		for(k=0;k<3;k++)
			printf("%c",substr[i][k]);
		j++;
		for(;a[i][j]!='\0';j++)
			printf("%c",a[i][j]);
		printf("\n");
	}
}
int main()
{   int len;
char a[10]={0},b[3]={0},c[10]={0};
	while(cin>>a)
	{	int i,temp=0;
		for(i=0;i<10;i++)c[i]=a[i];
    	len=strlen(a);
    
    	for(i=0;i<len;i++)
		{if(a[temp]-a[i]<0)
		temp=i;}
	for(i=0;i<=temp;i++)
		cout<<c[i];
	getchar();gets(b);
	cout<<b[0]<<b[1]<<b[2];
	for(i=temp+1;i<len;i++)
		cout<<c[i];
	cout<<endl;	
	}
	return 0;
}
void charu(char s1[],int h,char s2[],int k,char s3[]);
void main()
{
	char a[11],b[4];
	while (scanf("%s%s",a,b)!=EOF)
	{
		int l,n;
		char c[14]={'\0'};
		l=strlen(a);
		n=strlen(b);
		charu(a,l,b,n,c);
		puts(c);
	}
}
void charu(char s1[],int h,char s2[],int k,char s3[])
{
	int i,max=0;
	char temp;
	for(i=1;i<h;i++)
	{
		if(s1[i]>s1[max])
			max=i;
	}
	for(i=0;i<=max;i++)
		s3[i]=s1[i];
	for(i=max+1;i<=max+k;i++)
		s3[i]=s2[i-max-1];
	for(i=max+strlen(s2)+1;i<h+k;i++)
		s3[i]=s1[i-k];
}
// ?????.cpp : Defines the entry point for the console application.
// ???????????str?substr??substr???str?ASCII????????????????????????
int main()
{
	char str[11],substr[4],*p1=str,*p2=substr;      
	int i=0,max=0;
	char maxchar;
    while(cin>>str)                           //????str
    {
		cin>>substr;                          //??substr
	    maxchar=str[0]; 
	    p1=&str[0];
	    for(i=0;*(p1+i)!='\0';i++)            //??str??????       
		{
			if(*(p1+i)>maxchar)
			{
				maxchar=*(p1+i);
				max=i;
			}
		}
		for(p1=&str[0];p1<=&str[0]+max;p1++)       //??
		{
			cout<<*p1;
		}
		cout<<p2;
		for(p1=&str[0]+max+1;*p1!='\0';p1++)
		{
			cout<<*p1;
		}
		cout<<endl;
	}
	return 0;
}
void main()
{
	char str[11]={'\0'};
	char substr[4]={'\0'};
	char temp[10]={'\0'};
	int n,i,j,t,k;
	while (scanf("%s",str)!=EOF)
	{
		scanf("%s",substr);
	n=strlen(str);
	strcpy(temp,str);
	for(j=1;j<=n-1;j++)
	{
		for(i=0;i<n-j;i++)
		{
			if(temp[i]>temp[i+1])
			{
				t=temp[i];
				temp[i]=temp[i+1];
				temp[i+1]=t;
			}
		}
	}
	for (i=0;i<n;i++)
	{
		if(str[i]==temp[n-1])
		{
			k=i;
			break;
		}
	}
	for (i=0;i<=k;i++)
	{
		printf("%c",str[i]);
	}
	printf("%s",substr);
	for (i=k+1;i<n;i++)
	{
		printf("%c",str[i]);
	}
printf("\n");
	}
}
void main()
{
	char str[11],substr[4],max,final[14]={'\0'};
	int i,k,j;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		k=0;
		max=str[0];
		for(i=0;i<strlen(str);i++)
        {
			if(str[i]>max)
			{
				max=str[i];
				k=i;
			}
		}
		
        strncpy(final,str,k+1);
		for(i=0;i<3;i++)
			final[k+1+i]=substr[i];
        for(i=k+1;i<strlen(str);i++)
			final[i+3]=str[i];
        puts(final);

		for(j=0;j<11;j++)
			str[j]='\0';
		for(j=0;j<4;j++)
			substr[j]='\0';
		for(j=0;j<14;j++)
                   final[j]='\0';		
	}

}
int main(int argc, char* argv[])
{
	char str[11],substr[4];
	int i,j,max=0,len;
	while(scanf("%s%s",str,substr)!=EOF)
	{
    len=strlen(str);
	max=0;
	for(j=0;j<len;j++)
	{
	if(str[max]<str[j+1])
	max=j+1;
	}
	for(i=0;i<len;i++)
	{
	printf("%c",str[i]);
	if(i==max)
		printf("%s",substr);
	}
	printf("\n");
	}
		return 0;
}