int num(char st[]);
void conv1(char st[],int n);
void conv2(char st[],int n);
void result(char st1[],char st2[],char st3[]);
void main()
{
	char str[20],substr[4],str1[20],str3[20];
	while (scanf("%s%s",str,substr)!=EOF)
	{
		int n;
		n=num(str);/**/
		strcpy(str3,str);/**/
		conv1(str,n);/**/
		conv2(str3,n);/**/
		result(str,substr,str3);
	}
}
void conv1(char st[],int n)
{
	st[n]='\0';
}
void conv2(char st[],int n)
{
	int l,i;
	l=strlen(st);
	for(i=0;i<l-n;i++)
	{
		st[i]=st[i+n];
	}
	st[l-n]='\0';
}
int num(char st[])
{
	int i,l;
	char t;
	t=st[0];
	l=strlen(st);
	for(i=1;i<l;i++)
	{
		if(st[i]>t)
			t=st[i];
	}
	for(i=0;i<l;i++)
	{
		if(st[i]==t)
		{
			return (i+1);break;
		}
	}
}
void result(char st1[],char st2[],char st3[])
{
	 strcat(st1,st2);
	 strcat(st1,st3);
	 puts(st1);
}


int main()
{   int n,i,j;
    char str[10]={0},substr[3]={0},m=0;

	while(scanf("%s %s",str,substr)==2){m=0;n=0;

	for(i=0;i<10;i++){if(str[i]>m){m=str[i];n=i;}}

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

	}return 0;}


/* Note:Your choice is C IDE */
void main()
{
	char str[30],substr[4],max;
	int i,len,num;
	scanf("%s%s",str,substr);
	while(str[0]!='0')
	{
		len=strlen(str);
		for(i=0,max=str[0];i<len;i++)if(str[i]>max)max=str[i];
		for(i=0;i<len;i++)if(str[i]==max){
		num=i;
		break;
		}
		for(i=0;i<num+1;i++)printf("%c",str[i]);
		printf("%s",substr);
		for(i=num+1;i<len;i++)printf("%c",str[i]);
		printf("\n");
		for(i=0;i<len;i++)str[i]='0';
		for(i=0;i<3;i++)substr[i]='0';
		scanf("%s%s",str,substr);
	}
}


void main()
{
	char str[11],strsub[4],str2[14];
	int i,j,max,maxnum;
	while (scanf("%s %s",str,strsub)!=EOF)
	{
		max=0;
		for(j=0;;j++)
		{
			if(str[j]=='\0') break;
			if(str[j]>max)
			{
				max=str[j];
				maxnum=j;
			}
		}
		for(i=0;i<=maxnum;i++) str2[i]=str[i];
		str2[maxnum+1]='\0';
		strcat(str2,strsub);
		for(i=maxnum+4;;i++)
		{
			if(str[i-3]=='\0') break;
			str2[i]=str[i-3];
		}
		str2[i]='\0';
		puts(str2);
	}
}


void main()
{
	char str[11],substr[4],*p,ma;
	int i,m;
	while(scanf("%s%s",str,substr)!=EOF)
	{

		p=str;
		ma=*p;
		m=0;

		for(i=0;i<strlen(str);i++,p++)
		{
			if(*p>ma)
			{
				ma=*p;
				m=i;
			}
		}

		p=str;

		for(i=0;i<=m;i++,p++)
			printf("%c",*p);
		printf("%s",substr);
		for(;i<strlen(str);i++,p++)
			printf("%c",*p);
		printf("\n");
	}

}


int main()
{
	int n,i,j,k;
	char str[11];
	char substr[4];
    char t;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		t=str[0];k=0;
		for(i=1;str[i]!='\0';i++)
		{
			if( (str[i]-t)>0 )
			{
                t=str[i]; k=i;
			}
		}
		for(i=0;i<=k;i++)
		{
			printf("%c",str[i]);
		}
		for(i=0;substr[i]!='\0';i++)
		{
			printf("%c",substr[i]);
		}
		for(i=k+1;str[i]!='\0';i++)
		{
			printf("%c",str[i]);
		}
		printf("\n");
	}
	return 0;
}


void main()
{
	char *a,*b,*t;int i,j,n,max=0;
	a=(char *)calloc(1,12);
	b=(char *)calloc(1,5);
	t=(char *)calloc(1,20);
	for(;scanf("%s %s",a,b)!=EOF;)
	{
		for(i=0;i<(n=strlen(a));i++)
		{if(*(a+i)>max) max=*(a+i);}
		for(i=0;i<(n=strlen(a));i++)
			if(*(a+i)==max) break;
		strncat(t,a,i+1);strcat(t,b);strcat(t,a+i+1);
		printf("%s\n",t);
		a=(char *)calloc(1,12);
	    b=(char *)calloc(1,5);
	    t=(char *)calloc(1,20);
		max=0;
	}
}


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

}}


int count (char str[10],int len)
{
	int i;
	int maxi=0;
	for (i=0;i<len;i++)
	{
		if (str[i]>str[maxi]) maxi=i;
	}
	return maxi;
}

void main()
{
	int n,len,j;
	char sa[14],str[11],substr[4];
	while(scanf("%s%s",str,substr)!=EOF)
		 {
	 	len=strlen(str);
		n=count(str,len);
		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<=len+2;j++)
			sa[j]=str[j-3];
		sa[len+3]='\0';
		printf("%s\n",sa);
		 }
}


int main()
{
	char str[11],substr[4],x[15];
	int max,num,i,j;
	while(1)
	{
		max=0;

		if(scanf("%s%s",str,substr)==EOF)
		{
			break;
		}
		for(i=0;i<strlen(str);i++)
		{
			if(str[i]>max)
			{
				max=str[i];
				num=i;
			}
		}
		strncpy(x,str,num+1);
		for(j=num+1;j<=num+strlen(substr);j++)
		{
			x[j]=substr[j-num-1];
		}

		for(j=num+strlen(substr)+1;j<strlen(substr)+strlen(str);j++)
		{
			x[j]=str[j-strlen(substr)];
		}
		x[j]='\0';
		printf("%s\n",x);
	}
	return 0;
}


void main()
{
	int i,j=0,t,k,m,n;
	char temp;
	char str[20],str1[4],str2[20];
	scanf("%s%s",str,str1);
	do
	{
	m=strlen(str);
	n=strlen(str1);
	temp=str[0];
	for(i=0;i<m-1;i++)
	{
		if(temp<str[i+1])
		{
			temp=str[i+1];
			j=i+1;
		}
	}
	for(i=j+1,k=0;i<m;i++,k++)
	{
		str2[k]=str[i];
	}
	t=k;
	for(i=j+1,k=0;k<n;i++,k++)
	{
		str[i]=str1[k];
	}
	for(i=j+n+1,k=0;k<=t;i++,k++)
	{
		str[i]=str2[k];
	}
	for(i=0;i<m+n;i++)
	{
		printf("%c",str[i]);
	}
	printf("\n");
	}
	while(scanf("%s%s",str,str1)!=EOF);
}


char str1[50],str2[50],ans[50];
void main()
{
	char cutin();

	while(scanf("%s%s",str1,str2)!=EOF)
	{
		cutin();
		printf("%s\n",ans);
	}
}

char cutin()
{
	int i,max=0,max_index=0;
	char temp[50];
	char *p=str1;
	for(i=0;str1[i]!='\0';i++)
	{
		if(*(p+i)>max)
		{
			max=*(p+i);
			max_index=i;
		}
	}
	strcpy(ans,"");
	strncat(ans,str1,max_index+1);
	strcat(ans,str2);
	char *q1=&str1[max_index+1];
	char *q2=temp;
	for(i=0;str1[i]!='\0';i++)
		*(q2+i)=*(q1+i);
	*(q2+i)='\0';
	strcat(ans,temp);
	return 0;

}


void main()
{
	char str[15],substr[4],k;
	int i,j,t;
	while (scanf("%s%s",str,substr)!=EOF)
	{
		for(k=i=0;str[i]!=0;i++)
			if(str[i]>k)
			{
				k=str[i];
				j=i;
			}
		for(t=i+3;t>j+3;t--)
			str[t]=str[t-3];
		for(i=0;i<3;i++)
			str[j+1+i]=substr[i];
		printf("%s\n",str);
	}
}


void main()
{
	int cha(char array[11]);
	int i,j;
	char str[11],substr[4];
	for(i=0;scanf("%s %s",str,substr)!=EOF;i++)
	{
	   for(j=0;j<=cha(str);j++)
	    	printf("%c",str[j]);
	   printf("%s",substr);
	   for(j=j;str[j]!='\0';j++)
	    	printf("%c",str[j]);
	   printf("\n");
	}
}

int cha(char array[11])
{
	int i,k=0;
	for(i=1;array[i]!='\0';i++)
	{
		if(array[k]<array[i])
			k=i;
	}
	return (k);
}


int main()
{
    char str[20],substr[4];
    char c;
    memset(str,0,sizeof(str));
   while(cin.getline(str,15,' '))
    {
          cin.getline(substr,4);

    char *p,*max=str;

    for(p=str;*p!=0;)
    {
                    if(*p>*max) max=p;
                    p++;
    }
    p=str;
    do
    {
                    cout<<*p;
                    if(p==max) cout<<substr;
                    p++;
    }while(*p!=0);

    cout<<endl;

    if(c==0) break;
    else c=str[0];
     memset(str,0,sizeof(str));
    }
    return 0;

}


char string[13];
void f(char str[],char substr[]);
void main()
{
int i;
char str[10],substr[4];
	while (scanf("%s%s",str,substr)!=EOF)
	{
		f(str,substr);
for(i=0;i<strlen(str)+3;i=i+1)
printf("%c",string[i]);
printf("\n");
	}
}
void f(char str[10],char substr[4])
{
	int i,j,k,t;
	char max;
	max=str[0];
k=0;
	t=strlen(str);
	for(i=1;i<t;i=i+1)
	{
		if(str[i]>max)
		{
			max=str[i];
			k=i;
		}
	}
	for(i=0;i<=k;i=i+1)
	{
		string[i]=str[i];
	}
	j=0;
	for(i=k+1;i<=k+3;i=i+1)
	{
		string[i]=substr[j];
		j=j+1;
	}
	if(k<t-1)
	{
		j=k+1;
		for(i=k+4;i<t+3;i=i+1)
		{
			string[i]=str[j];
			j=j+1;
		}
	}
}


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()
{
	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()
{
     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 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;

}


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 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;
}


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


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[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]);
}


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


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;
}


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

	}

}


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()
{
	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;
}


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");
	}
}


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 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;
}


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,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;
}


//#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;
}


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 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");
	}
}


void main()
{
	char str[11],substr[4],*p1=str,*p2=substr;
	int i,j,k;
    while(scanf("%s%s",str,substr)!=EOF)
	{for(i=0,k=0;str[i]!='\0';i++)
		{if(str[i]>str[k])
			k=i;}

	for(j=0;j<=k;j++)
	  printf("%c",*(p1+j));
    printf("%s",substr);
    for(j=0;str[k+1+j]!='\0';j++)
	  printf("%c",*(p1+k+1+j));
	printf("\n");
	}
}


int main()
{
	char a[100]={'\0'},b[4]={'\0'},*q=NULL,*p=NULL;
	int temp=0;
	while(cin>>a)
	{
	cin>>b;
	temp=0;
	for(p=a;p<a+strlen(a);p++)
	{
		if(*p>temp)temp=*p;
	}
	for(p=a;p<a+strlen(a);p++)
	{
		if(*p==temp)break;
	}
	for(q=a;q<=p;q++)cout<<*q;
	cout<<b;
	for(q=p+1;q<a+strlen(a);q++)cout<<*q;
	cout<<endl;}
	return 0;
}


main()
{  char str[11],substr[4],st;
   while(scanf("%s",&str)!=EOF)
   {    scanf("%s",&substr);
        int i=0,k,t=0;
		k=strlen(str);st=str[0];
		for(i=0;i<k;i++)
			if(str[i]>st)
			{	st=str[i];
                t=i;
			}
			for(i=0;i<t+1;i++)
				printf("%c",str[i]);
			printf("%s",substr);
	        for(i=t+1;i<k;i++)
				printf("%c",str[i]);

         printf("\n");
   }
}


int main()
{
	int i,j,m,k;
    char str[11],strsub[4];
	for(j=0;;j++)
	{
		k=0;
		if(scanf("%s%s",str,strsub)==EOF)break;
		m=strlen(str);
		for(i=0;i<m;i++)
		{
			if((str[k]-str[i])<0)
			{
				k=i;
			}
		}
		for(i=0;i<k+1;i++)
		{
			printf("%c",str[i]);
		}
		printf("%s",strsub);
		for(i=k+1;i<m;i++)
		{
			printf("%c",str[i]);
		}
		printf("\n");
	}

	return 0;
}


int main ()
{
    int i, n, a,m;
    char str[11],substr[4];

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

        {
            n=strlen(str);
            m=0;

            for (i=0;i<n;i++)
            {
                if (str[i]>m)
                {
                    m=str[i];
                    a=i;
                }
            }

            for (i=0;i<n;i++)
            {
                printf("%c",str[i]);
                if (i==a)
                    printf("%s",substr);
            }
            printf("\n");
        }

}


void main()
{
	int i,n;char str[11],substr[4];
	int max;
	while(scanf("%s %s",str,substr)!=EOF)
{
	n=strlen(str);
	char * p1;char * p2;char *p3;
	p1=str,p2=str,p3=str;max=str[0];
	for(i=0;i<n;i++)
	{
		if(*(p1+i)>max)
		{
			max=*(p1+i);p2=p1+i;
		}
	}
	for(p1=str;p1<(p2+1);p1++)
    	printf("%c",*p1);
	for(i=0;i<3;i++)
		printf("%c",substr[i]);
	for(p1=p2+1;p1<(p3+n);p1++)
        printf("%c",*p1);
	printf("\n");
}
}


void insert(char st1[],char st2[]){
	int i,m,n;
	char max;
	m=strlen(st1);
	max=st1[0];
	n=m-1;

	for(i=0;i<m;i++){
		if(st1[i]>max){
			max=st1[i];
			n=i;}
	}

    for(i=0;i<=n;i++)printf("%c",st1[i]);
	for(i=0;i<3;i++)
	printf("%c",st2[i]
	);
	for(i=n+1;i<m;i++)printf("%c",st1[i]);
	printf("\n");
}
void main(){
	char st1[50][10],st2[50][4];
	int i,j,k;
	char p;
	while((st1[i][0]=getchar())!=EOF){
		for(j=1;;j++){
			if((p=getchar())!=' ')
				st1[i][j]=p;
			else{st1[i][j]='\0';
			     break;}
		}
		scanf("%s",st2[i]);
		i++;p=getchar();

	}
	k=i;
	for(i=0;i<k;i++)
		insert(st1[i],st2[i]);
}


void main()
{
	char str[11],substr[4];
	int i,k=0,n;
	char a;
	while(scanf("%s %s",str,substr)==2)
	{
		n=strlen(str);
		a=str[0];
		for(i=0;;i++)//??ASCII???????
		{
			if(str[i]=='\0')
			break;
			if(str[i]>a)
			{
				a=str[i];
				k=i;
			}
		}
		for(i=0;i<=k;i++)
			printf("%c",str[i]);
		for(i=0;i<=2;i++)
			printf("%c",substr[i]);
		for(i=k+1;i<n;i++)
			printf("%c",str[i]);
		printf("\n");
	}

}


void main()
{
	char str[10],strc[13],substr[3],max,num;
	int i,n;
	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];
				num=i;
			}
		}
		for(i=0;i<=num;i++)
		{
			strc[i]=str[i];
		}
		for(i=num+1;i<=num+3;i++)
		{
			strc[i]=substr[i-num-1];
		}
		for(i=num+4;i<n+3;i++)
		{
			strc[i]=str[i-3];
		}
		strc[n+3]='\0';
		printf("%s\n",strc);
	}
}


void main(){
	char a[15];
	char str[15],substr[3];
	int i=0,max,n,k;

	for(;;)
	{i=0;
       if((a[0]=getchar())==EOF)
		   exit(-1);
	   gets(&a[1]);
	   while(a[i]!=' ')
	   { str[i]=a[i];i=i+1;
	   }
	   str[i]='\0';
	   substr[0]=a[i+1];
	   substr[1]=a[i+2];
	   substr[2]=a[i+3];

	   max=0;n=strlen(str);
		for(k=1;k<=n-1;k++)
		{
			if(str[k]>str[max]) max=k;
		}
		for(k=n-1;k>=max+1;k=k-1)
			str[k+3]=str[k];
		str[max+1]=substr[0];
	    str[max+2]=substr[1];
	    str[max+3]=substr[2];
		str[n+3]='\0';
printf("%s\n",str);
	}
}


int main()
{
	char s[301];
	char ds[301];
    int i,j,k,l,max;
	while (scanf("%s",&s)!=EOF)
	{

	  l=strlen(s);
	  scanf("%s",&ds);
	  max=l-1;
	  for (j=l-1;j>0;j=j-1)
	  {
		  if (s[j]>=s[max]) max=j;
	  }
	  for (i=0;i<=max;i++)
		  printf("%c",s[i]);
	  printf("%s",ds);
	  for(i=max+1;i<l;i++)
		  printf("%c",s[i]);
	  printf("\n");
	}
	return 0;
}


main()
{
	char str1[100],str2[100],str3[100];
	int temp1,temp2,l1,l2,max;
	while(scanf("%s%s",str1,str2)!=EOF)
	{
		l1=strlen(str1);
		l2=strlen(str2);
		max=0;
		for(temp1=1;temp1<=l1-1;temp1++)
		{
			if(str1[temp1]>str1[max])
				max=temp1;
		}
		for(temp1=max+1,temp2=0;temp1<=l1-1;temp1++,temp2++)
		{
			str3[temp2]=str1[temp1];
			str1[temp1]='\0';
		}
		str3[temp2]='\0';
		strcat(str1,str2);
		strcat(str1,str3);
		puts(str1);
	}
	return 0;
}


void main()
{
	char str[10],s[10],p;
	int i,t;
	while (scanf("%s",str)!=EOF)
	{
		scanf("%s",s);
		p=str[0];t=0;
		for(i=1;i<strlen(str);i++)
		{
			if (str[i]>p)
			{
				p=str[i];
				t=i;
			}

		}
        for (i=0;i<=t;i++)
			printf("%c",str[i]);
		printf("%s",s);
		for (i=t+1;i<strlen(str);i++)
			printf("%c",str[i]);
		printf("\n");

	}
}


void main()
{
	int i,l,k,m=0;
	char *p1,*p2,*p3;
	char max;
	char str[11];
	char substr[4];
	char res[13];
	while(scanf("%s%s",str,substr)!=EOF)
	{
		p1=str;p2=substr;p3=res;
	   l=strlen(str);
	   max=str[0];
       k=0;
	   for(i=0;i<l;i++)
	   {
		   if(max<str[i]){max=str[i];k=i;}
	   }
	   for(i=0;i<13;i++)
	   {
		   if(i<=k)*(p3+i)=*(p1+i);
	       else if(i<=k+3)*(p3+i)=*(p2+i-k-1);
	       else if(i<l+3)*(p3+i)=*(p1+i-3);
	       else res[i]='\0';
	   }
	   printf("%s\n",res);
	   }
}


void main()
{
	char a[30],b[10],max;
	scanf("%s%s",a,b);
	int la,lb,index,i;
	do
	{
		la=strlen(a);
	    lb=strlen(b);
		max=a[0];index=0;
		for(i=0;i<la;i++)
		{
			if(a[i]>max)
				max=a[i];
		}
		for(i=0;i<la;i++)
		{
			if(a[i]==max)
			{
				index=i;
				break;
			}
		}
		for(i=0;i<=index;i++) printf("%c",a[i]);
		for(i=index+1;i<=index+lb;i++) printf("%c",b[i-index-1]);
		for(i=index+lb+1;i<la+lb;i++) printf("%c",a[i-lb]);
		printf("\n");
		scanf("%s",a);
	}
	while(scanf("%s",b)!=EOF);
}


void main()
{
	char a[15],b[5];
	while(scanf("%s%s",a,b)!=EOF)
	{
		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,max,maxi;
	char str[10],substr[4];
	while(scanf("%s %s",str,substr)!=EOF)
	{
		max=maxi=0;
		for(i=0;str[i]!=0;i++)
		{
			if(str[i]>max)
			{
				max=str[i];
				maxi=i;
			}
		}
		for(i=0;i<=maxi;i++)
			printf("%c",str[i]);
		printf("%s",substr);
		for(;str[i]!=0;i++)
			printf("%c",str[i]);
		printf("\n");
	}
	return 0;
}


int main()
{
    char str[14],substr[4],a[11];
	int i,j,k,l,len,p;
    while(cin.get(str,11,' '))
	{
		p=0;
	    k=0;
		len=strlen(str);
		cin.get();
		cin.getline(substr,4);
		for(i=0;i<len-1;i++)
			for(j=i+1;j<len;j++)
				if(str[i]>str[j])
				  if(str[i]>str[p])
					  p=i;
        for(j=p+1;j<len;j++)
			a[k++]=str[j];
		a[k]='\0';
		k=0;
		str[p+1]=substr[0];
		str[p+2]=substr[1];
		str[p+3]=substr[2];
		for(i=p+4;i<len+3;i++)
			str[i]=a[k++];
		str[i]='\0';
		cout<<str;
		cout<<endl;
	}
	return 0;
}


char str[10];
char substr[3];
int pan(){
	int j,i,x,qq=strlen(str)-1;
	for(i=0;i<strlen(str);i++){
		x=0;
		for(j=0;j<strlen(str);j++){
			if(str[i]<str[j]){x=0;break;}
			x=1;}
		if(x==1){qq=i;break;}
	}
	return qq;
	}

int main(){
	while (scanf("%s %s",str,substr)!=EOF){
		int i;
		for(i=0;i<=pan();i++)printf("%c",str[i]);
		for(i=0;i<3;i++)printf("%c",substr[i]);
		for(i=pan()+1;i<strlen(str);i++)printf("%c",str[i]);
		printf("\n");}
	return 0;
}


int main()
{
	int i,j,t;
	char str[11],substr[4];
	while(scanf("%s%s",str,substr)!=EOF){
		t=0;
		for(i=0;str[i];i++)if(str[i]>t)t=str[i];
	for(i=0;str[i];i++){
		if(str[i]<t)printf("%c",str[i]);
		else{
			printf("%c",str[i]);
			printf("%s",substr);
			break;
		}
	}
	for(j=i+1;str[j];j++)printf("%c",str[j]);
	printf("\n");
        }
	return 0;
}


int main()
{
    int i,L,zhi,j,k;
    char str[15],substr[4],c;
    while(scanf("%s%s",str,substr)!=EOF)
    {
    	L=strlen(str);
    	c=str[0];
    	zhi=0;
    	for(i=1;i<L;i++)
    	{
	    	if(c<str[i])
	    	{
	    		c=str[i];
	    		zhi=i;
	    	}
	    }
	    for(j=0;j<=zhi;j++)
	    {
    		printf("%c",str[j]);
    	}
    	printf("%s",substr);
    	for(k=zhi+1;k<L;k++)
    	{
	    	printf("%c",str[k]);
	    }
	    printf("\n");
    }
}


int main()
{
	int i,m,j,k,l,n;
	char c[11]={' '},cc[4]={' '};
	while(!(feof(stdin)))
	{
		scanf("%s%s\n",c,cc);
		l=strlen(c)-1;
		m=0;
		for (i=0;i<=l;i++)
			if (c[i]>c[m]) m=i;
		for (i=0;i<=m;i++)
			putchar(c[i]);
		printf("%s",cc);
		for (i=m+1;i<=l;i++)
			putchar(c[i]);
		printf("\n");
	}
	return 7;
}


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)
{
	int i;
	char *p;
	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,*substr;
	str=(char *)malloc(11*sizeof(char));
	substr=(char *)malloc(3*sizeof(char));
	while(scanf("%s%s",str,substr)!=EOF)
	{
		k=findmax(str);
		insert(str,substr,k);
		printf("%s\n",str);
	}
	return 0;

}


int main()
{
	char s1[11],s2[4],t[20];
	int max,i,p;
	while(scanf("%s%s",s1,s2)!=EOF)
	{
		max=0;
		for(i=0;i<strlen(s1);i++)
		{
			if(s1[i]>max)
			{
				max=s1[i];
				p=i;
			}
		}
		strcpy(t,s1+p+1);
		s1[p+1]='\0';
		strcat(s1,s2);
		strcat(s1,t);
		puts(s1);
	}
	return 0;
}


int main()
{
    char str[11],substr[4];
while(cin>>str>>substr)
{
char a[14];
int len_a=strlen(str),len_b=strlen(substr),i,j;
char max=0;
for(i=0;i<len_a;i++)//?????
{
if(str[i]>max)  max=str[i];
else  continue;
}
for(i=0;i<len_a;i++)
{
if(str[i]==max)
{
if(i==len_a-1)//????????????,????????,?????
{
for(j=len_a;j<=len_a+len_b;j++)
str[j]=substr[j-len_a];
}
else
{
for(j=0;j<len_a-i-1;j++)
a[j]=str[j+i+1];
for(j=i+1;j<i+len_b+1;j++)
str[j]=substr[j-i-1];
for(j=i+len_b+1;j<len_a+len_b;j++)
str[j]=a[j-i-len_b-1];
str[j]='\0';
}
break;
}
else continue;
}
cout<<str<<endl;}
return 0;
}


int main()
{
	char a[11];
	char b[4];
	char max;
	int i=0,j=0,k=0,m=0,y=0,temp;
	for(i=0;i<11;i++)
	{
		a[i]='\0';
	}
	while(cin>>a)
	{
		temp=0;
	    cin>>b;
	    max=a[0];
		for(j=0;j<strlen(a);j++)
		{
			if(a[j]>max)
			{
				max=a[j];
			    temp=j;
			}
		}
		for(k=0;k<=temp;k++)
		{
			cout<<a[k];
		}
		for(m=0;m<3;m++)
		{
			cout<<b[m];
		}
		for(y=temp+1;y<strlen(a);y++)
		{
			cout<<a[y];
		}
		cout<<endl;
	}
	return 0;
}


char max(char ch[],int len)
{
	int i;
	char t;
	for(i=0;i<len-1;i++)
		if(ch[i]>ch[i+1])
		{
			t=ch[i];
			ch[i]=ch[i+1];
			ch[i+1]=t;
		}
	return ch[len-1];
}
int main()
{
	char str[20],sub[4],x[20],m;
	int len,i;
    while(scanf("%s %s",str,sub)!=EOF)
	{
		len=strlen(str);
		strcpy(x,str);
		m=max(x,len);
		i=0;
		do
		{
			printf("%c",str[i]);
			i++;
		}
		while(str[i]!=m);
		printf("%c",str[i]);
		printf("%s",sub);
		for(++i;i<len;i++)printf("%c",str[i]);
printf("\n");
	}
	return 0;
}


int main()
{
	int position,i,lena,lenb,n=10;
	char a[10],b[4],*p=NULL,max;
	while(n--)
	{
		max=0;
		memset(a,'\0',sizeof a);
		memset(b,'\0',sizeof b);
		cin>>a;
		cin>>b;
		lena=strlen(a);
		lenb=strlen(b);
		p=&a[0];
		for(i=0;i<lena;i++)
		{
			if(*p>max)
			{
				max=*p;
				position=i;
			}
			p+=1;
		}
		for(i=0;i<=position;i++)
			cout<<a[i];
		cout<<b;
		for(i=position+1;i<lena;i++)
			cout<<a[i];
		cout<<endl;
	}
	return 0;
}


void insert(char str[],char substr[])
{
	int i,j,k,lenstr,lensubstr,lentemp,max;
	char temp[10]={0};
	lenstr=strlen(str);
	lensubstr=strlen(substr);
	max=0;
	for(i=0;i<=lenstr-1;i++)
	{
		if(str[i]>str[max])
		max=i;
	}
	for(i=0,j=max+1;j<=lenstr-1;i++,j++)
		temp[i]=str[j];
	lentemp=strlen(temp);
	for(i=0,j=max+1;i<=lensubstr;i++,j++)
	    str[j]=substr[i];
	for(i=0,k=j-1;i<=lentemp-1;i++,k++)
	    str[k]=temp[i];
}
void main()
{
	char str[20]={0},substr[4]={0};
	int len,i;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		insert(str,substr);
		len=strlen(str);
		for(i=0;i<=len-1;i++)
		printf("%c",str[i]);
		printf("\n");
		for(i=0;i<=19;i++)
		str[i]=0;
		for(i=0;i<=3;i++)
		substr[i]=0;
	}
}


int main()
{
	char a[11],b[4],temp=0;int t=0,i,n;
	while(scanf("%s%s",a,b)!=EOF)
	{
		n=strlen(a);
		for(i=0;i<n;i++)
		{
			if(a[i]>temp)temp=a[i],t=i;
		}
		for(i=0;i<=t;i++)
		printf("%c",a[i]);
		printf("%s",b);
		for(i=t+1;i<n;i++)
		printf("%c",a[i]);
		printf("\n");
		t=0;temp=0;
	}
}


main()
{
	int n,max,m,i;
	char str1[11],str2[4],c,s[]="";
	scanf("%s",str1);
	scanf("%s",str2);
	c=getchar();
	n=strlen(str1);
	while (c!='\0'&&n!=0)
	{
	   max=0;
	   m=0;
	   for (i=0;i<n;i++)
		  if (str1[i]>max)
		  {
			max=str1[i];
			m=i;
		  }
		for (i=0;i<=m;i++) printf("%c",str1[i]);
		printf("%s",str2);
		for (i=m+1;i<n;i++) printf("%c",str1[i]);
		printf("\n");
		strcpy(str1,s);
		scanf("%s",str1);
	    scanf("%s",str2);
	    c=getchar();
		n=strlen(str1);
	}
}


int main(int argc, char* argv[])
{

char str[11],substr[4],max;
int m,n,i,j,z,t,temp=0;
while(scanf("%s%s",str,substr)!=EOF)
{
      m=strlen(str);
      n=strlen(substr);
      max=str[0];

      for(i=0;i<m;i++)
	  {
		  if(str[i+1]>max)
		  {
			  max=str[i+1];
			  temp=i+1;
		  }
	  }
	  for(j=0;j<=temp;j++)
	  {
		  printf("%c",str[j]);
	  }
	  for(z=0;z<n;z++)
	  {
		  printf("%c",substr[z]);
	  }
	  for(t=temp+1;t<m;t++)
	  {
		  printf("%c",str[t]);
	  }
	  printf("\n");
}
return 0;
}


int main()
{
	int i, j, max = 0;
	char str[11], substr[4], maxx = 0;
	char zong[20];
	while (scanf("%s%s", str, substr) != EOF)
	{
		max = 0;
		maxx = 0;
		j = 0;
		for (i = 0; i <= strlen(str) - 1; i++)
		{
			if (str[i] > maxx)
			{
				max = i;
				maxx = str[i];
			}
		}
		for (i = 0; i <= max; i++)
		{
			zong[j++] = str[i];
		}
		for (i = 0; i <= 2; i++)
		{
			zong[j++] = substr[i];
		}
		for (i = max + 1; i <= strlen(str) - 1; i++)
		{
			zong[j++] = str[i];
		}
		zong[j] = '\0';
		printf("%s\n", zong);
	}
}


void main()
{
	char *index,*i;
	int max;
	char str1[100],str2[5];
	while(scanf("%s%s",&str1,&str2)!=EOF)
	{
		max=0;
		for(i=str1;*i!='\0';i++)
			if(*i>max) max=*i,index=i;
		for(i=str1;i<=index;i++)
			printf("%c",*i);
		printf("%s",str2);
		for(i=index+1;*i!='\0';i++)
			printf("%c",*i);
		printf("\n");
	}

}


void main()
{
	char str[13],substr[3];
	int s,i,j,p;
	while(scanf("%s %s",str,substr)!=EOF)
	{
	s=strlen(str);
	p=0;
	for(i=0;i<=s-1;i++)
		if(str[i]>str[p])
              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];
	str[s+3]='\0';
    printf("%s\n",str);
	}
}


int main()
{char str[20],sub[10];
 int max,i,j;
 while(scanf("%s%s",str,sub)!=EOF)
  {
    j=strlen(str);max=0;
    for(i=1;str[i];i++)
    if(str[i]>str[max])max=i;
    for(i=j;i>max;i--)
    str[i+3]=str[i];
    for(i=0;i<3;i++)
    str[max+i+1]=sub[i];
    printf("%s\n",str);
  }
}


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]);
	}
}


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;
}


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


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]);
	}
}


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()
{
	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);
}
}


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");
	}
}


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 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 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 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;
}


int main()
{
	char str[4],string[12];
	int i,j=0,max;
	while(scanf("%s %s",string,str)!=EOF)
    {
		max=0;j=0;
		for(i=0;i<strlen(string);i++)
			if(string[i]>string[max])
				max=i;
			for(i=strlen(string);i>=max+1;i--)
				string[i+3]=string[i];
			for(i=max+1;i<max+4;i++,j++)
				string[i]=str[j];
			for(i=0;string[i]!='\0';i++)
				printf("%c",string[i]);
			printf("\n");
	}
			return 0;
}


/* Note:Your choice is C IDE */
void main()
{
	 char str[11],substr[4],A[15];
     int i,M,N,n,h;
	 while (scanf("%s%s",str,substr)!=EOF)
	 {
     n=strlen(str);
	 i=1;
     N=str[0];
	 while(i<=n-1)
	 {
		 if(str[i]>N) {N=str[i];M=i;}
		 else {N=N;M=M;}
	     i++;
	 }
	 i=0;
	 while(i<=M)
	 {
		 A[i]=str[i];
		 i++;
	 }
	 A[M+1]=substr[0];
	 A[M+2]=substr[1];
	 A[M+3]=substr[2];
	 while(i<=n-1)
	 {
		 A[i+3]=str[i];
		 i++;
	 }
	 i=0;
	 while(i<=n+2)
	 {
	   printf("%c",A[i]);
	   i++;
	 }
	 printf("\n");
	 }
}


void main()
{
	int j,i,max=0;
    char str[11]={0},substr[4]={0},s[20]={0},*p;

	while(scanf("%s %s",str,substr)!=EOF)
	{   max=str[0];j=0;p=&str[0];
		for(i=0;str[i]!=0;i++)
			if(str[i]>max)
			{
				max=str[i];
				p=&str[i];
				j=i;
			}
		strncat(s,str,j+1);
		strcat(s,substr);
		strcat(s,p+1);
		printf("%s\n",s);
		strcpy(s,"");strcpy(str,"");strcpy(substr,"");
	}
}


void main()
{
	char str[16], substr[4];
	int i, lenth;
	int maxAsc=0;
	char maxChar=0;
	while(scanf("%s%s",str,substr)==2)
	{
		maxAsc=0;
		maxChar=0;
		lenth=strlen(str);
		for(i=0;i<lenth;i++)
		{
			if(maxChar<*(str+i))
			{
				maxChar=*(str+i);
				maxAsc=i;
			}
		}
		str[lenth+3] = 0;
		for(i=lenth-1;i>maxAsc;i--)
		{
			*(str+i+3)=*(str+i);
		}
		for(i=0;i<3;i++)
		{
			*(str+maxAsc+i+1)=*(substr+i);
		}
		printf("%s\n",str);
	}
}


int seekmax(char a[])
{
	int k=0,i=1;
	while(a[i]!='\0')
	{
		if(a[i]>a[k])
			k=i;
		i++;
	}
	return k;
}
void insert(char a[],char b[],int k)
{
	int n,i;
	n=strlen(a);
	for(i=n;i>k;i--)
		a[i+3]=a[i];
	for(i=1;i<=3;i++)
		a[k+i]=b[i-1];
	printf("%s\n",a);
}
void main()
{
	int i=0,j=0;
	char a[15],b[4];
	while(scanf("%s%s",a,b)!=EOF)
		insert(a,b,seekmax(a));
}


int main()
{
	char str[11],substr[4],temp;
	int p,i;
	while(cin)
	{
		p=0;
		for(i=0;i<11;i++)
			str[i]='\0';
		for(i=0;i<4;i++)
			substr[i]='\0';

		cin.getline(str,11,' ');
		cin>>substr;

		temp=str[0];
		for(i=0;str[i]!='\0';i++)
			if(str[i]>temp)
			{
				temp=str[i];
			    p=i;
			}
		for(i=0;i<=p;i++)
			cout<<str[i];
		cout<<substr;
		for(i=p+1;str[i]!='\0';i++)
			cout<<str[i];
		cout<<endl;

	}
		return 0;
}


void main()
{
	char str[15],substr[4];
	int i,j,max,c;

    while(scanf("%s %s",str,substr)!=EOF)
	{
	for(i=1,max=str[0],c=0;str[i]!='\0';i++)
	{
		if(str[i]>max)
		{
			max=str[i];
			c=i;
		}
	}
	for(j=i+3;j>c+3;j--)
		str[j]=str[j-3];

	str[c+1]=substr[0];
	str[c+2]=substr[1];
	str[c+3]=substr[2];
	printf("%s\n",str);
	}
}


int plug(char str[11],char substr[4])
{
	int i,j,t,c,n,a[11]={0,1,2,3,4,5,6,7,8,9};
	char p[11],q;
	n=strlen(str);
	strcpy(p,str);
	for(j=0;j<n-1;j++)
		for(i=0;i<n-1-j;i++)
			if(p[i]<p[i+1])
			{
				t=a[i];a[i]=a[i+1];a[i+1]=t;
				q=p[i];p[i]=p[i+1];p[i+1]=q;
			}
	c=a[0];
	for(i=0;i<=c;i++)
		printf("%c",str[i]);
	printf("%s",substr);
	for(i=c+1;i<n;i++)
		printf("%c",str[i]);
	printf("\n");
	return 0;
}
int main ()
{
	char str[11],substr[4];
	while(scanf("%s%s",str,substr)!=EOF)
	{
		plug(str,substr);
	}
	return 0;
}


int main()
{
    char str[11],substr[4],s[14];
    int i,j;
    while(scanf("%s",str)!=EOF)
    {
    scanf("%s",substr);
    int len;
    int jh=0;
    len=strlen(str);
    for(j=0;j<=len-1;j++)
    {
    if(str[j]>str[jh]) jh=j;
    }
    for(j=0;j<=jh;j++)
    {
    s[j]=str[j];
    }
    for(j=jh+1;j<=jh+3;j++)
    {
    s[j]=substr[j-jh-1];
    }
    for(j=jh+4;j<=len+2;j++)
    {
    s[j]=str[j-3];
    }
    s[len+3]='\0';
    puts(s);
    printf("\n");
    }
}


void main()
{
	int i,j,l,max;
	char str[15],substr[3];
    while(scanf("%s%s",str,substr)!=EOF)//scanf???????????????????????
	{
		l=strlen(str);
		max=0;
		for(i=0;i<l;i++)
		{
			if(str[max]<str[i])
				max=i;
		}
		for(j=l-1;j>max;j--) str[j+3]=str[j];
		for(j=max+1;j<max+4;j++) str[j]=substr[j-max-1];
		for(j=0;j<l+3;j++) printf("%c",str[j]);
		printf("\n");
	}
}


//??????
//20101219 liuyi
int main()
{

	 char str[11],substr[4];
	 while(cin>>str)
	 {
		 cin>>substr;
	     char *max=str,temp;
	     int i;
         for(i=0;i<strlen(str);i++)
	     if(str[i]>*max)                   //?????????
		   {
			 max=&str[i];
			 temp=*max;
		   }
         *max=0;             //?str??????????????????
        cout<<str<<temp<<substr<<max+1<<endl;                //??????
	 }
	return 0;

}


int main() {
  char s[15], t[15];
  int i, k;
  while (scanf("%s%s", s, t) != EOF) {
    k = 0;
    for (i = 1; s[i]; ++i)
      if (s[k] < s[i]) k = i;
    for (i = 0; i <= k; ++i)
      putchar(s[i]);
    printf("%s", t);
    for (i = k + 1; s[i]; ++i)
      putchar(s[i]);
    putchar('\n');
  }
  return 0;
}


void main()
{
	char str[20],substr[20],t,last[20]={0};
	int i,k,l;
	for(;;)
	{
		if(scanf("%s%s",str,substr)==EOF) break;
		t=str[0];k=0;l=strlen(str);
		for(i=0;i<l;i++)
		{
			if(str[i]>t) {t=str[i];k=i;}
		}
		for(i=0;i<=k;i++)
			last[i]=str[i];
		for(i=k+1;i<=k+3;i++)
			last[i]=substr[i-k-1];
		for(i=k+4;i<l+3;i++)
			last[i]=str[i-3];
		last[l+3]=0;
		puts(last);
	}

}


int main()
{
    char str[1000],substr[1000];
    while(scanf("%s %s",str,substr)!=EOF)
    {
        int len1=strlen(str);
        int i,j,k,max,temp;
        max=str[len1-1];
        for(i=len1-1;i>=0;i--)
        {
            if(str[i]>=max)
            {
                max=str[i];
                temp=i;
            }
        }
        for(i=0;i<len1;i++)
        {
            if(i==temp)
            {
                printf("%c",str[i]);
                printf("%s",substr);
            }
            else printf("%c",str[i]);

        }
        printf("\n");
    }
return 0;
}


void main()
{
	char str1[11],cut[4],ans[20],*p,maxchar;
	int i,l,maxnum;
	while(scanf("%s%s",str1,cut)!=EOF)
	{
		p=str1;
		l=strlen(str1);
		maxchar=*p;
		maxnum=0;
		p++;
		for(i=1;i<l;i++,p++)
			if(*p>maxchar)
			{
				maxchar=*p;
				maxnum=i;
			}
		strcpy(ans,"");
		strncat(ans,str1,maxnum+1);
		strcat(ans,cut);
		strcat(ans,str1+maxnum+1);
		puts(ans);
	}
}


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];

	}
		for(i=0;i<n;i++)
		printf("%s\n",finalstr[i]);
}


char str[N]= {NULL},substr[N]= {NULL};

int main()
{
     while( scanf("%s%s",str,substr)!=EOF) {
          char rt[N]= {NULL},*p1,*p2;
          int n=0,i=0,k=0;//indx[N]= {NULL};

          for(p1=str,p2=str,i=0; p1-str<strlen(str); p1++) {
               if(*p1>k) {
                    k = *p1;
                    p2=p1;
                    n=p2-str;
               }
          }
          strncpy(rt,str,n+1);
          //  printf("%d",k);
          printf("%s",rt);
          printf("%s",substr);
          printf("%s\n",p2+1);
     }
     return 0;
}


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


void main()
{
	char wo[50][50];
	char in[50][50];
	char out[50][50];
	int i=0,j,k=0;
	int temp=0;
	while(scanf("%s %s",wo[i],in[i])!=EOF)
	{
		i++;
	}
	for(j=0;j<=i;j++)
	{
temp=0;
		for(k=0;wo[j][k]!=0;k++)
			if(wo[j][k]>wo[j][temp])temp=k;
		strcpy(out[j],wo[j]);
		for(k=temp+1;k<temp+1+strlen(in[j]);k++)
			out[j][k]=in[j][k-temp-1];
		do
		{
			temp++;
			out[j][k]=wo[j][temp];
			k++;
		}while(wo[j][temp]!=0);
if(j!=i)
		printf("%s\n",out[j]);
else printf("%s",out[j]);

	}

}


void main()
{
	int i,k,j;
	char str[10],substr[3],d={EOF};
	for (j=0;;j++)
	{
		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]);
	d=EOF;
	}
}


int main()
{
	char str[12],substr[5];
	int i,j;
	char X;
	while(scanf("%s %s",str,substr)!=EOF)
	{
		X=str[0];
		for(i=1;i<strlen(str);i++)
			if(X<str[i]) X=str[i];
		for(i=1;i<strlen(str);i++)
			if(str[i]==X) break;
		for(j=0;j<=i;j++)
			printf("%c",str[j]);
		printf("%s",substr);
		for(j=i+1;j<strlen(str);j++)
			printf("%c",str[j]);
		printf("\n");
	}
	return 0;
}


void main()
{
	char str[14],substr[4];
	int max=0,i,l;
	while (scanf("%s%s",str,substr)!=EOF)
	{
		l=strlen(str);
		for (i=0;i<l;i++)
			if (str[i]>str[max]) max=i;
		for (i=l-1;i>=max+1;i--)
			str[i+3]=str[i];
		for (i=1;i<=3;i++)
			str[max+i]=substr[i-1];
		str[l+3]=0;
		puts(str);
	}
}


int main()
{
	char word[20],in[4];
	//char temp[20];
	char *p,*q;
	while(cin>>word>>in)
	{
		p=word;
		q=word;
		while(1)
		{
			if(*p=='\0')break;
			if(*p-*q>0)q=p;
			p++;
		}
		p=word;
		while(1)
		{
			if(*p=='\0')
			{
				cout<<endl;
				break;
			}
			cout<<*p;
			if(p==q)
				cout<<in[0]<<in[1]<<in[2];
			p++;
		}
	}
	return 0;
}


int main()
{
    int n,i,max=0;
    char str[100],substr[100],m;
    while(scanf("%s%s",str,substr)!=EOF){
    n=strlen(str);
    m=str[0];
    for(i=0;i<n;i++){
        if(str[i]>m){
            m=str[i];
            max=i;
        }
    }
    for(i=0;i<n;i++){
        printf("%c",str[i]);
        if(i==max)
        printf("%s",substr);
    }
    printf("\n");
    }
    return 0;
}


void main()
{
	char a[11],b[4],max,ans[14];
	int i,k,n,f,j;
	char *pa,*pb;
	j=0;
	while (scanf("%s %s",a,b)!=EOF)
	{
		pa=a;
		pb=b;
		k=strlen(a);
		f=strlen(b);
		max=0;
		for(i=0;i<k;i++)
		{
			if(*pa>max)
			{
				max=*pa;
				n=i;
				pa++;
			}
			else pa++;
		}
		i=0;
		for(pa=a;pa<a+n+1;pa++)
		{
			printf("%c",*pa);
		}
		for(pb=b;pb<b+f;pb++)
		{
			printf("%c",*pb);
		}
		for(pa=a+n+1;pa<a+k;pa++)
		{
			printf("%c",*pa);
		}
		printf("\n");
	}
}


int main()
{
char str[15],substr[4],*p;
int i,n,j,k;
while(scanf("%s%s",str,substr)!=EOF)
{

p=&str[0];
n=strlen(str);
for(i=0;i<n;i++)
if(*p<str[i])
{
p=&str[i];
j=i;
}
for(i=n-1;i>j;i--)
str[i+3]=str[i];
*(p+1)=substr[0];
*(p+2)=substr[1];
*(p+3)=substr[2];
str[n+3]='\0';

printf("%s\n",str);
}
return 0;
}


void main()
{
	char c1[11],c2[4];char ans[20];
	while(scanf("%s%s",c1,c2)!=EOF)
	{
		char ans[20]={0};
	int i,max,max_num,n,j,m;
    max=0;n=strlen(c1);
	for(i=0;i<=n;i++)
	{
		if(c1[i]>max)
		{
			max=c1[i];
			max_num=i;
		}
	}
	for(i=0;i<=max_num;i++)
		ans[i]=c1[i];
	strcat(ans,c2);
	n=strlen(c1);
	m=strlen(ans);j=0;
	for(i=max_num+1;i<=n;i++)
	{
	    ans[m+j]=c1[i];j++;
	}
	printf("%s\n",ans);
	}
}


int main()
{
	char str[10]={0},substr[5]={0};
	while(scanf("%s",str)!=EOF)
	{
		scanf("%s",substr);
		int i,k,u;
		for(u=0;u<=9;u++)
		{
			if(!str[u])
				break;
		}
		k=0;
		for(i=1;i<=u-1;i++)
		{
			if(str[k]<str[i])
			{
				k=i;
			}
		}
		for(i=0;i<=k;i++)
			printf("%c",str[i]);
		for(i=0;i<=2;i++)
			printf("%c",substr[i]);
		for(i=k+1;i<=u-1;i++)
			printf("%c",str[i]);
		printf("\n");
	}
	return 0;
}


void main()
{
	char str[14],substr[4];
	while (scanf("%s %s",str,substr)!=EOF)
	{
	         int i,n,max=0,num;
		n=strlen(str);
                  char *p=str;
		for(i=0;i<n;i++)
		{
			if(*(p+i)>max)
			{
				max=*(p+i);
				num=i;
			}
		}
		for(i=n+2;i>num+3;i--)
		{
			*(p+i)=str[i-3];
		}
                  *(p+n+3)='\0';
		for(i=num+3;i>num;i--)
		{
			*(p+i)=substr[i-num-1];
		}
		for(i=0;i<n+3;i++)
			printf("%c",*(p+i));
		printf("\n");
	}
}


void body()
{
	char str[11];
	char substr[4];
	char c;
	int i=0,k,s=0;
	char * p;
	scanf("%s %s",str,substr);
	c=*(str+strlen(str)-1);
	k=strlen(str);
	for(i=strlen(str)-1;i>-1;i--)
	{
		if(str[i]>=c)
		{
			k=i+1;
			c=*(str+i);
		}
	}
	p=str;
	if(strlen(str)>=11 || strlen(substr)>=4) return;
	for(i=0;i<k;i++)
	{
		printf("%c",*(p+i));
	}
	printf("%s",substr);
	printf("%s\n",p+i);
	body();
}

void main()
{
	body();
}


int main(void)
{
    char a[SIZE], b[SIZE];
    int maxi, i;
    char max;
    while(scanf("%s %s",a,b)!=EOF)
    {
        max = a[0];
        maxi = 0;
        for(i=1; i<strlen(a); i++)
            if(a[i]>max)
            {
                maxi=i;
                max=a[i];
            }

        for(i=0; i<=maxi; i++)
        printf("%c",a[i]);
        printf("%s",b);
        for(i=maxi+1; i<strlen(a); i++)
        printf("%c",a[i]);
        printf("\n");
    }
    return 0;
}


void main()
{
    char str[11],substr[4];
	while(scanf("%s %s",str,substr)!=EOF)
	{
		int i,m=0;
		char max=str[0];
		for(i=1;str[i]!='\0';i++)
			if(str[i]>max)
			{max=str[i];m=i;}
		for(i=0;i<=m;i++)
			printf("%c",str[i]);
		int p=strlen(substr);
		for(i=0;i<p;i++)
			printf("%c",substr[i]);
		int q=strlen(str);
		for(i=m+1;i<q;i++)
			printf("%c",str[i]);
		printf("\n");
	}

}


void main()
{
	void output(char a[11],char b[4]);
	int i;
	char a[11],b[4];
	for(i=0;scanf("%s %s",a,b)!=EOF;i++)
	    output(a,b);
}

void output(char a[11],char b[4])
{
	int i,c=0,j;
	for(i=1;a[i]!='\0';i++)
	{
		if(a[c]<a[i])
			c=i;
	}
	for(j=0;j<=c;j++)
	    	printf("%c",a[j]);
	   printf("%s",b);
	for(j=j;a[j]!='\0';j++)
	    	printf("%c",a[j]);
	printf("\n");
}


void main()
{
	char s[20],sub[10];
	int i,j,k,ls,lsub;
	while(scanf("%s%s",s,sub)!=EOF)
	{
		ls=strlen(s);
		lsub=strlen(sub);
		k=0;
		for(i=1;i<ls;i++)
			if(s[i]>s[k])
				k=i;
		for(i=ls;i>k;i--)
			s[i+lsub]=s[i];
		for(i=k+1,j=0;j<lsub;i++,j++)
			s[i]=sub[j];
	printf("%s\n",s);
	}
}


void f(char str[],char substr[]);
void main()
{
	char str[15],substr[4];
	while (scanf("%s%s",str,substr)!=EOF)
	{
	f(str,substr);
	}
}
void f(char str[],char substr[])
{
	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()
{
	int k,s,p=0,m=0;
	char str[10],substr[3],d;
	do
	{
		if (p) for (k=1;;k++) {str[k]=getchar();if (str[k]==' ') {str[k]='\0';break;}}
		else scanf("%s",str);
		scanf("%s",substr);d=getchar();
		for (k=0;k<strlen(str);k++)	if ((int)str[k]>m) {s=k;m=(int)str[k];}
		for (k=0;k<=s;k++) printf("%c",str[k]);
		printf("%s",substr);
		for (k=s+1;k<strlen(str);k++) printf("%c",str[k]);
		printf("\n");
		m=0;p+=1;
	}while((str[0]=getchar())!=EOF);
}


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


char str[10],substr[3],a[13];
void F(int);
void main()
{
	int k,b;
	while (scanf("%s%s",str,substr)!=EOF)
	{
		k=strlen(str);
		F(k);
		for(b=0;b<=k+2;b++)
		printf("%c",a[b]);
		printf("\n");
	}
}
void F(int k)
{
	int t,i,j,e=0,f;
	for(i=0;i<k;i++)
	{f=0;
	for(j=i+1;j<k;j++)
	{if(str[i]<str[j]) f++;}
	if(f==0) {t=i;break;}
	}
	for(i=0;i<=t;i++)
	{
		a[i]=str[i];
	}
	for(j=t+4;j<=k+2;j++)
	{
		a[j]=str[j-3];
	}
	for(i=t+1;i<=t+3;i++)
	{
		a[i]=substr[e];e++;
	}
}


int o;
void main()
{
	void insert(char x[],char y[],int z,char w[]);
	int max(char p[]);
	char str[20],substr[4],f[30]={0};
	int m,n;
	while(scanf("%s%s",str,substr)!=EOF)
	{
		o=strlen(str);
		m=max(str);
		insert(str,substr,m,f);
		for(n=0;n<o+3;n++)
			printf("%c",f[n]);
		printf("\n");
	}
}
int max(char p[])
{
	int i,l,d=0;
	l=strlen(p);
	for(i=0;i<l;i++)
	{
		if(p[i]>p[d])
			d=i;
	}
	return d;
}
void insert(char x[],char y[],int z,char w[])
{
	int j,k;
	for(j=0,k=0;k<=z;j++,k++)
		w[j]=x[k];
	for(j=z+1,k=0;k<3;k++,j++)
		w[j]=y[k];
	for(j=z+4,k=z+1;k<o;k++,j++)
		w[j]=x[k];
}


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


int find(char str[]);
void link(char str[],char substr[], int x);
void main()
{
	char str[20],substr[4];
	int i;
	while(scanf("%s%s",&str,&substr)!=EOF)
	{
		i=find(str);
		link(str, substr, i);
	}
}
int find(char str[])
{
	int max,j,k;
	max=str[0]; k=0;
	for(j=0;str[j]!='\0';j++)
	{
		if(str[j]>max)
		{
			max=str[j];
			k=j;
		}
	}
	return k;
}
void link(char str[],char substr[],int i)
{
	int j;
	int len;
	len=strlen(str);
	for(j=len;j>i;j--)
		str[j+3]=str[j];
	str[i+1]=substr[0];
	str[i+2]=substr[1];
	str[i+3]=substr[2];
	printf("%s\n",str);
}


void main()
{

	char a[20]={0},b[4]={0},max;
while (scanf("%s%s",a,b)!=EOF)
	{

	int n,i,maxnum;

	n=strlen(a);
	maxnum=0;max=a[0];
	for(i=0;i<n;i++)
	{
		if(max<a[i])
		{
			max=a[i];
			maxnum=i;
		}
	}

	for(i=n;i>maxnum;i--)
		a[i+3]=a[i];
	for(i=0;i<3;i++)
		a[maxnum+1+i]=b[i];
	printf("%s\n",a);
	}
}


void insert(char str[],char substr[])
{
    int max,len,i,j,position;
	char str1[15];
    len=strlen(str);
	max=str[0];
	for(i=0;i<len;i++)
	{
		if(str[i]>max)
		{
			max=str[i];
		    position=i;
		}
	}
	for(j=0;j<=position;j++)
		str1[j]=str[j];
	for(j=position+1;j<len;j++)
		str1[j+3]=str[j];
	for(j=1;j<4;j++)
	{
		str1[j+position]=substr[j-1];
	}
    str1[len+3]='\0';
	printf("%s\n",str1);
}

void main()
{
    char str[11];
	char substr[4];

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

	{

		scanf("%s",substr);
        insert(str,substr);

	}

}


int main()
{
	char str[100],substr[100],max;
	int a,b,c,i,d,e,num;
	while(scanf("%s%s",str,substr)!=EOF)
	{
    	  a=strlen(str);
	      b=strlen(substr);
	      max=str[0];
	      num=0;
	      for(i=0;i<a;i++)
		  {
		     if(str[i+1]>max)
			 {
			   max=str[i+1];
			   num=i+1;
			 }
		  }
	       for(c=0;c<=num;c++)
		   {
             printf("%c",str[c]);
		   }
	       for(d=0;d<b;d++)
		   {
		      printf("%c",substr[d]);
		   }
	       for(e=num+1;e<a;e++)
		   {
		     printf("%c",str[e]);
		   }
	     printf("\n");

	}
	return 0;
}


void main()
{
	char str[11],substr[4],a[11];

	int j,k,i,n,m;

	while(scanf("%s%s",str,substr)!=EOF)
        {
	n=strlen(str);
         m=strlen(substr);
             for(j=0;j<n;j++)
	   a[j]=str[j];

		for(k=1;k<n;k++)
			   if(a[0]<a[k])
				 a[0]=a[k];
	for(j=0;j<n;j++)
	{
		printf("%c",str[j]);
		if(str[j]==a[0])
			break;
	}
	for(k=0;k<m;k++)
		printf("%c",substr[k]);
	for(i=(j+1);i<n;i++)
		printf("%c",str[i]);
         printf("\n");
	}
}


void main()
{
int i,max=0;
char str[11],substr[4],maxchar;
while(scanf("%s",str)!=EOF)
{
maxchar='\0';
scanf("%s",substr);
for(i=0;str[i];i++)
if(str[i]>maxchar)
{
max=i;
maxchar=str[i];
}
for(i=0;i<=max;i++)
 printf("%c",str[i]);
printf("%s",substr);
for(i=max+1;str[i];i++)
 printf("%c",str[i]);
printf("\n");
}
}


int main()
{
	char str[15],substr[5];
	while(scanf("%s %s",&str,&substr)!=EOF)
	{
		int k=0,i=0;
		char *p,max;
		for(p=str,max=str[0];*p!='\0';p++,i++)
		{
			if(*p>max)max=*p,k=i;
		}
		for(p=str;p<=(str+k);p++)
		{
			printf("%c",*p);
		}
		printf("%s",substr);
		for(p=str+k+1;*p!='\0';p++)
		{
			printf("%c",*p);
		}
	    	printf("\n");
	}
}


char zuida(char a[])
{
	char max;
	int i,p=0;
	max=a[0];
	for(i=0;a[i]!='\0';i++)
		if(a[i]>max)
		{
			max=a[i];
			p=i;
		}

	return(p);

}

void main()
{
	char a[50],b[20];
	int i,t1,t2,m;

	while(scanf("%s%s",a,b)!=EOF)
	{

    t1=strlen(a);
	t2=strlen(b);

    m=zuida(a);

   for(i=0;i<m+1;i++)
      printf("%c",a[i]);
   for(i=0;i<t2;i++)
      printf("%c",b[i]);
   for(i=m+1;i<t1;i++)
	  printf("%c",a[i]);
   printf("\n");
	}

}


void main()
{
	char str[11],strsub[4],str2[14],c,fd;
	int k,i,j,max,maxnum;
	while (scanf("%s %s",str,strsub)!=EOF)
	{
		max=0;
		for(j=0;;j++)
		{
			if(str[j]=='\0') break;
			if(str[j]>max)
			{
				max=str[j];
				maxnum=j;
			}
		}
		for(i=0;i<=maxnum;i++) str2[i]=str[i];
		str2[maxnum+1]='\0';
		strcat(str2,strsub);
		for(i=maxnum+4;;i++)
		{
			if(str[i-3]=='\0') break;
			str2[i]=str[i-3];
		}
		str2[i]='\0';
		puts(str2);
	}
}


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


void main()
{
	char str[11],substr[4],t,s1,s2;
	int j=0,i,len,k;
	while (scanf("%s%s",str,substr)!=EOF)
	{
		k=0;
		len=strlen(str);
		t=str[0];
		for(i=1;i<len;i++)
		{
			if(t<str[i])
			{
				k=i;
				t=str[i];
			}
		}

		for(i=0;i<=k;i++)
			printf("%c",str[i]);
		printf("%s",substr);
		for(i=k+1;i<len;i++)
			printf("%c",str[i]);
		printf("\n");

	}

}


int main()
{
    char str[11],sub[4],*a,*b;
	int max,i,t,n;
	while(scanf("%s %s",str,sub)!=EOF)
	{
		max=0;
		a=str;b=sub;
		n=strlen(str);
		for(i=n-1;i>=0;i--)
		if(*(a+i)>=max)
		{
			t=i;
			max=*(a+i);
		}
		for(i=0;i<=t;i++)
			printf("%c",*(a+i));
		printf("%s",b);
		for(i=t+1;i<n;i++)
			printf("%c",*(a+i));
		printf("\n");
}
}


void main()
{
	char str[20],substr[5];
	int i,p;
	while(scanf("%s %s",str,substr)!=EOF)
	{
		for(i=0,p=0;i<strlen(str);i++)
			if(str[i]>str[p]) p=i;
			for(i=0;i<=p;i++)
				printf("%c",str[i]);
			printf("%s",substr);
			for(i=p+1;i<strlen(str);i++)
				printf("%c",str[i]);
			printf("\n");
	}
}


int main()
{
	char str[20],c,substr[8];
	int n,max,i;
	while(1)
	{
		max=0;
		c=getchar();
		if(c=='\n')
			c=getchar();
		if(c==EOF)
			break;
		else
		{
			scanf("%s%s",&str,&substr);
			n=strlen(str);
			for(i=n-1;i>=0;i--)
				str[i+1]=str[i];
			str[0]=c;
			str[++n]=0;
			for(i=1;i<n;i++)
				if(str[i]>str[max])
					max=i;
			for(i=0;i<=max;i++)
				printf("%c",str[i]);
			printf("%c%c%c",substr[0],substr[1],substr[2]);
			for(;i<n;i++)
				printf("%c",str[i]);
			putchar('\n');
		}
	}
}


void main()
{
	char str[15],substr[4],*p,max,*q;
	int i,num=0,n;
	while(scanf("%s %s",str,substr)!=EOF)
	{

		n=strlen(str);
	    p=str;
	q=substr;
	max=*p;
	for(i=0;i<n;i++)
	{
		if(*(p+i)>max)
		{
			max=*(p+i);
			num=i;
		}
	}
	for(i=0;i<num+1;i++)
	    printf("%c",*(p+i));
	for(i=0;i<3;i++)
		printf("%c",*(q+i));
	for(i=num+1;i<n;i++)
		printf("%c",*(p+i));
	printf("\n");
	}
}


int main()
{
	char str[30],newstr[30],max;
	int l=0,p=0,i;
	while(cin.getline(str,30))
	{
		max=str[0];
		l=strlen(str);
		for(int i=0;i<=l-5;i++)
		{
			if(max<str[i])
			{
				max=str[i];
				p=i;
			}
		}
		for(i=0;i<=p;i++)
		{
			newstr[i]=str[i];
		}
		for( i=1;i<=3;i++)
		{
			newstr[p+i]=str[l-4+i];
		}
		for(i=p+4;i<=l-2;i++)
		{
			newstr[i]=str[i-3];
		}
		for(i=0;i<=l-2;i++)
		{
			cout<<newstr[i];
		}
		cout<<endl;

	}
		return 0;
}


void main()
{
	char str[13],substr[3];
	int i=0,max,j,n,k;

for(k=0;k<100;k++)
{
	for(i=0;i<13;i++)
		str[i]='\0';

	for(i=0;i<3;i++)
	substr[i]='\0';

	max=0;

	scanf("%s%s",str,substr);

	n=strlen(str);

	for(i=0;i<n;i++)
		max=(max>str[i])?max:str[i];

	for(i=0;i<n;i++)
		if(str[i]==max)
		{
			for(j=n-1;j>i;j--)
				str[j+3]=str[j];
			str[i+1]=substr[0];
			str[i+2]=substr[1];
			str[i+3]=substr[2];
			break;
		}

		printf("%s\n",str);

}

}


main()
{
	char str[11]={'\0'},sub[4];
		while (scanf("%s %s",str,sub)!=EOF)
		{
		char fi[15]={'\0'},a[10]={'\0'};
		int i,j,k,n=strlen(str);
		char c=str[0];
		for (i=1;i<n;i++)
		if (str[i]>c) c=str[i];
		for (j=0;;j++)
        {
			fi[j]=str[j];
		    if(str[j]==c) break;
		}
		for (k=j+1;k<n;k++)
		a[k-j-1]=str[k];
		strcat(fi,sub);
		strcat(fi,a);
		printf("%s\n",fi);
		}
	return 0;
}


int main()
{
	char from[100];
	char to[100];
	while(1){
		int max=0;
		char str[1000];
		cin.getline(str,999);
		if (str[0]=='\0') {return 0;}
		int lenstr=strlen(str);
		if (lenstr==0) {return 0;};
		int i;
		for(i=0;i<lenstr;i++){
			if (str[i]==' ') {break;}
			from[i]=str[i];
		}
		from[i]='\0';
		int k;
		k=0;
		for(++i;i<lenstr;i++){
			to[k]=str[i];
			k++;
		}
		to[k]='\0';
		int len;
		len=strlen(from);
		int maxpos=0;
		for(i=0;i<len;i++)
		{
			if (from[i]>max) {max=from[i];maxpos=i;}
		}
		int j;
		for(j=0;j<=maxpos;j++){
			printf("%c",from[j]);
		}
		for (i=0;to[i]!='\0';i++){
			printf("%c",to[i]);
		}

		for(;from[j]!='\0';j++){
			printf("%c",from[j]);
		}
		printf("\n");

	}
	return 0;
}


int max(char str[]);

void main ()
{
	int i;

	for (;;)
	{
		int n,m;
		char x;
		char str[14],substr[4];
		if((x=getchar())==EOF) break;

		gets(str);
		n=strlen(str);
		for(i=0;i<3;i++)
		{
			substr[i]=str[n+i-3];
		}
		substr[3]='\0';
		str[n-3]='\0';
		for(i=n-4;i>0;i=i-1)
		{
			str[i]=str[i-1];
		}
		str[0]=x;

		m=max(str);

		for(i=n+2;i>m+3;i=i-1)
		{
			str[i]=str[i-3];
		}
        str[n+3]='\0';
		str[m+1]=substr[0];
		str[m+2]=substr[1];
		str[m+3]=substr[2];
		puts(str);
	}
}

int max(char str[])
{
	int len;
	int i;
	char c=str[0];
	len=strlen(str);

	for(i=1;i<len;i++)
	{
		if(c<str[i]) c=str[i];
	}

	for(i=0;i<len;i++)
	{
		if(str[i]==c) return i;
	}
	return 0;
}


int main()
{
	char str[11],substr[4],c[14];
	int i=0,j=0,a,m,n,p,q;
	for (;;)
	{a=scanf("%s %s",str,substr);
	 if (a==EOF)
		{break;}
	 else
	 {m=strlen(str);
	 n=strlen(substr);
	 p=0;
	 for (i=0;i<m;i++)
		{if (str[i]<=str[p])
			{continue;}
		 else {p=i;}
		}
     for (q=0;q<m+n;q++)
		{if (q<=p)
			{c[q]=str[q];}
		 if (q>p && q<p+n+1)
			{c[q]=substr[q-p-1];}
		 if (q>=p+n+1)
			{c[q]=str[q-n];}
		}
	 for (q=0;q<m+n;q++)
		{printf("%c",c[q]);
		}
	 printf("\n");}
	}
	return 0;
}


int main()
{
	char str[11],sub[4],a;
	int i,j,b;
	for(i=0;;i++)
	{
	    if(scanf("%s %s",str,sub)==EOF)
	    {
	        break;
	    }
	    else
	    {
	        a=0;b=0;
	        for(j=0;j<strlen(str);j++)
	        {
	            if(str[j]>a)
	            {
	                a=str[j];
	                b=j;
	            }
	        }
	        for(j=0;j<=b;j++)
	        {
	            printf("%c",str[j]);
	        }
	        printf("%s",sub);
	        for(j=b+1;j<strlen(str);j++)
	        {
	            printf("%c",str[j]);
	        }
	    }
	    printf("\n");
	}

	return 0;
}


void main()
{
	char str[13],substr[3];
	int s,i,j,p;
	while(scanf("%s %s",str,substr)!=EOF)
	{
	s=strlen(str);
	p=0;
	str[s]=97;
	substr[3]=97;
	for(i=0;i<=s-1;i++)
		if(str[i]>str[p])
              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];
	str[s+3]='\0';
    printf("%s\n",str);
	}
}


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()
{  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);
}


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