semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
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]);
}
void charu(char*p1,char*p2);
int main()
{
    char a[1000][15],b[1000][3];
    int i=0;
    while(cin>>a[i])
    {
      cin>>b[i];   
      charu(a[i],b[i]);
      i++;             
    }
return 0;    
}
void charu(char *p1,char*p2)//???????????????????????? ? 
{
     int k=0,i,maxx=0;
    while(*(p1+k)!='\0')
    {
        if(*(p1+k)>*(p1+maxx))                
          maxx=k;
          k++;              
    }   
     for(i=0;i<=maxx;i++)
        cout<<*(p1+i);
        cout<<p2;
     for(i=maxx+1;*(p1+i)!='\0';i++)
        cout<<*(p1+i);
        cout<<endl;    
}
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()
{
	int  k=0,n,i,j,l,m;
	char a[100][20]={0},max,e[100][20]={0};
	while(1)
	{
		char b[10]={0},c[20]={0},d[3]={0},p;
		gets(a[k]);
		if(a[k][0]==0)
			break;
		n=strlen(a[k]);
		m=n-4;
		max=a[k][0];
        for(i=1;i<=n-5;i++)
			if(a[k][i]>max)
			{
				max=a[k][i];
			    p=i;
			}
		for(j=p+1,l=0;j<=m-1;j++,l++)
           b[l]=a[k][j];
		for(i=0;i<=p;i++)
           c[i]=a[k][i];
		for(i=0,j=m+1;j<=n-1;i++,j++)
		   d[i]=a[k][j];
		strcat(c,d);
		strcat(c,b);
		strcpy(e[k],c);
		k++;
	}
	for(i=0;i<=k-1;i++)
		puts(e[i]);
}
void main()
{
	char s[50],t[3],asc='\0',c,m[100][14];
	int i,j,k=0,count=0,sn;
	c=getchar();

	while(c != EOF)
	{
		s[0]=c;
		c=getchar();
		for(i=1;c!=' ';i++)
		{
			s[i]=c;
			c=getchar();
		}
		sn=i-1;
		for(i=0;i<3;i++)
		{
			c=getchar();
			t[i]=c;
		}
		for(i=0;i<=sn;i++)
		{
			if(s[i]>asc)
			{
				asc=s[i];
				count=i;
			}
		}
		for(j=sn;j>count;j--)
		{
			s[j+3]=s[j];
		}
		sn+=3;
		for(i=0,j=count;i<3;i++,j++)
		{
			s[j+1]=t[i];
		}
		asc=0;
		count=0;
		s[sn+1]='\0';
		strcpy(m[k++],s);
		c=getchar();
		c=getchar();
	}
	for(i=0;i<k;i++)
	{
		puts(m[i]);
	}
}
void output(int len, char inp[1000])
{
	char lin1[10][10],lin2[10][3],lin3[10][13];
	int i,j=0,k=0,ma=0;
	int max[10];
	int lenm[10];
	for(i=0;i<10;i++)
		max[i]=0;
	for(i=0;i<len;i++)
	{
		if(inp[i]!=32)
		{
			if(ma==0)
			{
				lenm[k]=0;
				for(j=0;inp[i]!=32&&i<len;i++,j++)
				{
					lin1[k][j]=inp[i];
					lenm[k]++;
				}
				ma=1;continue;
			}
			if(ma==1)
			{
				for(j=0;j<3;i++,j++)
					lin2[k][j]=inp[i];
				ma=0;
				k++;
				i--;
			}

		}
	}
	for(i=0;i<k;i++) max[i]=lin1[i][0];
	for(i=0;i<k;i++)
	{
		for(j=1;j<lenm[i];j++)
			if(lin1[i][j]>max[i]) max[i]=lin1[i][j];
	}
	for(i=0;i<k;i++)
	{
		for(j=0;j<lenm[i];j++)
		{
			lin3[i][j]=lin1[i][j];
			if(lin1[i][j]==max[i])
			{
				lin3[i][j+1]=lin2[i][0];
				lin3[i][j+2]=lin2[i][1];
				lin3[i][j+3]=lin2[i][2];
				for(j=j+1;j<lenm[i];j++)
					lin3[i][j+3]=lin1[i][j];
				break;
			}
		}
	}
	for(i=0;i<k;i++)
	{
		for(j=0;j<lenm[i]+3;j++)
			printf("%c",lin3[i][j]);
		printf("\n");
	}
}

main()
{
	int len[100],i,j;
	char inp[100][100];
	for(i=0;i<100;i++)
	{	
		gets(inp[i]);
		len[i]=strlen(inp[i]);
		if(len[i]==0) break;
	}
	j=i;
	for(i=0;i<j;i++)
		output(len[i],inp[i]);
}
int main()
{
	char s1[14],s2[4],s,s3[14];
	int n,m,t;
	while(scanf("%s%s",s1,s2)!=EOF)
	{
		for(n=1,s=s1[0],m=0;s1[n]!='\0';n++)
		{
			if(s1[n]>s)
			{
				m=n;
				s=s1[n];
			}
		}
		for(n=m+1,t=0;s1[n]!='\0';n++,t++)
			s3[t]=s1[n];
		s3[t]='\0';
		for(n=1;n<=3;n++)
			s1[m+n]=s2[n-1];
		s1[m+n]='\0';
		printf("%s%s\n",s1,s3);
	}
	return 0;
	}
void main()
{
	char str[20][14];
	int m;
	int i=0,j,p,q;
	char x;
	for(i=0;i<20;i++)
		for(j=0;j<14;j++)
		{
			str[i][j]='\0';
		}
	for(i=0;;i++)
	{
		gets(str[i]);
		m=i;
		if(str[i][0]=='\0')break;
		
	}
	for(i=0;i<m;i++)
	{
        p=0;
		q=0;
		for(j=0;j<14;j++)
		{
			if(str[i][j]==' ')
			{
				p=j; 
				break;
			}
		}
        x=str[i][0];
		for(j=1;j<p;j++)
		{
			if(str[i][j]>x)
			{
				x=str[i][j];
				q=j;
			}
		}

		for(j=0;j<=q;j++)
		{
			printf("%c",str[i][j]);
		}
		printf("%c%c%c",str[i][p+1],str[i][p+2],str[i][p+3]);
		for(j=1;j<p-q-1;j++)
		{
			printf("%c",str[i][q+j]);
		}
		printf("%c\n",str[i][p-1]);

	}
}
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 main()
{
	char s1[15]={'\0'},s2[4]={'\0'},a[15]={'\0'},c[15]={'\0'};
	int i,j,n,m=0,k=0;
	while (scanf("%s%s",s1,s2)!=EOF)
	{		
		n=strlen(s1);
		for(i=0;i<n;i++) c[i]=s1[i];
		for(i=0;i<n-1;i++)
		{
			if(s1[m]<s1[i+1]) m=i+1;
		}
		for(i=0;i<=m;i++) {printf("%c",c[i]);s1[i]='\0';c[i]='\0';}
		printf("%c%c%c",s2[0],s2[1],s2[2]);
		for(j=m+1;j<n;j++) {printf("%c",c[j]);s1[j]='\0';c[j]='\0';}
		printf("\n");m=0;k=0;
	}
}
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;
}
int main()
{
	char a[100];
	char b[100];
	char c[100];
	char d[100];
	char e[1];
	int i,j,k;
    while(scanf("%s %s",a,b)!=EOF)
	{
		e[0]=a[0];
		k=0;
		for(i=0;a[i]!='\0';i++)
		{
			if(a[i]>e[0])
			{
				e[0]=a[i];
				k=i;
			}
		}
		for(i=0;i<=k;i++)
		{
			c[i]=a[i];
		}
		c[i]='\0';
		for(j=k+1;a[j]!='\0';j++)
		{
			d[j-k-1]=a[j];
		}
		d[j-k-1]='\0';
        strcat(c,b);
		strcat(c,d);
		printf("%s\n",c);
	}
	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 s1[13],s2[4];
	while(scanf("%s%s",s1,s2)!=EOF)
	{
		int l,i,j,k;
		l=strlen(s1);
		for(i=0;i<l;i++)
		{
			for(j=0;j<l;j++)
			{
				if(s1[i]<s1[j])
					break;
			}
			if(j==l)
			{
				for(k=l+3;k>i+3;k--)
					s1[k]=s1[k-3];
				s1[l+3]='\0';
				s1[i+1]=s2[0];
				s1[i+2]=s2[1];
				s1[i+3]=s2[2];
				break;
			}
		}
		printf("%s\n",s1);
	}
}
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");
}
}
//********************************************************
//*??????????.cpp                              *
//*??????                                          *
//*?????2010?12?18?                              *
//********************************************************
int main()
{
	char substr[3]={'\0'};//?????
	char str[10]={'\0'};
	char out[13]={'\0'};//?????
	int length=0;
	int i=0;
	int j=0;
	char temp='\0';
	int num=0;
	while (cin>>str>>substr)//??????
	{
		length=strlen (str);//???????
		for(i=0;i<length;i++)//?????????
		{
			if(str[i]>temp)
			{
				temp=str[i];
				num=i;
			}
		}
		for(i=0;i<=num;i++)//????????????????
		{
			out[i]=str[i];
		}
		strcat(out,substr);//????????????
		for(i=num+4,j=num+1;i<(length+3)&&j<length;i++,j++)//?????
		{
			out[i]=str[j];
		}
		num=0;//??????
		temp='\0';
		cout<<out<<endl;
		for(i=0;i<13;i++)//??????????
		{
			out[i]='\0';
		}
	}
	
	return 0;
}
void main()
{
	char str[100][40],su[4],s[10],max;
	int m,length[100],i=0,j,l,p;
	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];
		for(j=1;j<length[i]-4;j++)
		{
			if(str[i][j]>max)
			{
				max=str[i][j];
				p=j;
			}
		}
		for(j=0;j<3;j++)
		   su[j]=str[i][length[i]+j-3];
		for(j=0;j<length[i]-p-5;j++)
			s[j]=str[i][p+j+1];
		for(j=0;j<=p;j++)
			str[i][j]=str[i][j];
		for(j=p+1;j<=p+3;j++)
			str[i][j]=su[j-p-1];
		for(j=p+4;j<length[i];j++)
			str[i][j]=s[j-p-4];
		for(j=length[i]-1;j<40;j++)
			str[i][j]='\0';
		printf("%s\n",str[i]);
	}
}
int main()
{
	char *p1,*m;
	int n,i;
	char s[1000];
	while(gets(s))
{
	n=strlen(s);
	m=&s[0];
    for(p1=s;p1<(s+n-4);p1++)
	{
		if(*p1>*m) m=p1;
	}
	for(p1=s;p1<(s+n-4);p1++)
	{
		if(p1<m) printf("%c",*p1);
		if(p1==m) printf("%c%c%c%c",*p1,s[n-3],s[n-2],s[n-1]);
		if(p1>m) printf("%c",*p1);
	}
printf("\n");
}
return 0;	
}
int find(char c[])
{
	int i,k;
	k=0;
	i=0;
	while(c[i]!='\0')
	{
		if(c[i]>c[k])
			k=i;
		i++;
	}
	return(k);
}

void main()
{
	char a[100],b[100];
	int i,k;
	while(scanf("%s%s",a,b)!=EOF)
	{
	k=find(a);
	for(i=0;i<=k;i++)
		printf("%c",a[i]);
	printf("%s",b);
	i=k+1;
	while(a[i]!='\0')
	{
		printf("%c",a[i]);
		i++;
	}
	printf("\n");
	}
}
void main()
{   
  int i,j,kong,max[100],hang;
  char bi;
  char a[100][50];
  char b[100][50];
  for(i=0;i<100;i++)
  {
	  gets(a[i]);
	  if(strlen(a[i])==0) break;
	  max[i]=0;bi=a[i][0];
	  for(j=1;a[i][j]!=' ';j++)
	  {
		  if(a[i][j]>bi)
		  {
			  bi=a[i][j];
			  max[i]=j;
		  }
	  }//???ASCII??????????
	  for(j=1;j<strlen(a[i]);j++)
	  {
		  if(a[i][j]==' ')
		  {
			  kong=j;
			  break;
		  }//kong????????
	  }
	  for(j=0;j<=max[i];j++)
	  {
		  printf("%c",a[i][j]);
	  }
	  printf("%c%c%c",a[i][kong+1],a[i][kong+2],a[i][kong+3]);
	  for(j=max[i]+4;j<strlen(a[i])-1;j++)
	  {
		  printf("%c",a[i][j-3]);
	  }
	  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');
		}
	}
}
int main()
{
	char a[10],b[10],k;
	int i,l,t=0,m;
	while((scanf("%s%s",a,b))!=EOF)
	{
		l=strlen(a);
        m=strlen(b);
		k=a[0];
		for(i=1;i<l;i++)
			if(a[i]>k)
			{
				k=a[i];
				t=i;
			}
		for(i=0;i<=t;i++)
			printf("%c",a[i]);
		for(i=0;i<m;i++)
            printf("%c",b[i]);
		for(i=t+1;i<l;i++)
		printf("%c",a[i]);
		printf("\n");
	}
	return 0;
}
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);
		
}	



}
void main()
{
	int i, k;
	char a[14],b[4];
         while (scanf("%s%s",a,b)!=EOF)
	{
				k=0;
		for(i=0;a[i]!='\0';i++)
		   if(a[k]<a[i])
			   k=i;
		for(i=12;i>k+3;i--)
			a[i]=a[i-3];
		for(i=k+1;i<k+4;i++)
			a[i]=b[i-k-1];
		printf("%s\n",a);
	}
}
void main()
{
	char str[100][15],substr[100][4],c,max=0;
	int i,j,k;
    i=0;   
    while(scanf("%s %s",str[i],substr[i])!=EOF)
	{
		for(j=0;(c=str[i][j])!='\0';j++)
		    if(max<c)
			{max=c;k=j;}
	    for(j=0;j<k+1;j++)
		    printf("%c",str[i][j]);
	    printf("%c%c%c",substr[i][0],substr[i][1],substr[i][2]);
	    for(j=k+1;(c=str[i][j])!='\0';j++)
		printf("%c",str[i][j]);
	    printf("\n");
		i=i++;
		max=0;
	}
	
}
//**********************************************************
//????????
//??????
//???2010?12?20?
//**********************************************************
char temp[10];
void strsub(char *a,int start)
{
	int i;
	int len=strlen(a);
	for(i=start;i<len;i++)
	{
		temp[i-start]=a[i];
		a[i]='\0';
	}
	temp[len-start]='\0';

}

int main()
{
	char str1[10],str2[10];
	char max;
	int flag,i;
	int len;
	while(cin>>str1>>str2)
	{
		len=strlen(str1);
		max=0;
		for(i=0;i<len;i++)
			if(max<str1[i])
			{
				max=str1[i];
				flag=i;
			}
		strsub(str1,flag+1);
		strcat(str1,str2);
		strcat(str1,temp);
		cout<<str1<<endl;
	}
	return 0;
}
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);
	}
}
void main()
{
	int n,i,max,m,j=0,k;
	char a[111],b[4],*p,c[11111][111];
	while(scanf("%s %s",a,b)!=EOF)
	{
	n=strlen(a);
	p=a;
	max=a[0];
	for(i=1;i<n;i++)
	{
		if(a[i]>max)  
		{
			max=a[i];
			m=i;
		}
	}
	for(i=n+3;i<(n+n-m+2);i++)
		a[i]=a[i+m-n-2];
	for(p=(a+m+1);p<(a+m+4);p++)
		*p=b[p-a-m-1];
	for(p=(a+m+4);p<(a+n+3);p++)
		*p=a[p-a-m+n-1];
	for(i=0;i<n+3;i++)
		c[j][i]=a[i];
        c[j][n+3]=0;
	j=j+1;
	k=j;
	}
	for(j=0;j<k;j++)
		printf("%s\n",c[j]);
}
int main()
{
	int l;
	char str[20],sub[20],*max,*p,temp;
	while(cin>>str)
	{
		l=strlen(str);
		cin>>sub;
		max=str;
		for(p=str;p<=str+l;p++)                           //??????????
		{
			if(*max<*p)
			{
				max=p;                                    //????????
			}
		}
		temp=*max;*max=0;
		cout<<str<<temp<<sub<<max+1<<endl;                //???????????????????????
	}
	return 0;
}
void main()
{
	char s[15],p='\0';
	int i,len,max;
	while(gets(s))
	{
	len=strlen(s)-4;
	for(i=0;i<len;i++)
		if(*(s+i)>p) {p=*(s+i);max=i;}
	for(i=0;i<=max;i++)
		printf("%c",*(s+i));
	for(i=len+1;i<=len+3;i++)
		printf("%c",*(s+i));
	for(i=max+1;i<len;i++)
		printf("%c",*(s+i));
	p='\0';
	printf("\n");
	}
}
int main()
{
	char s1[100][15]={'\0'},s2[100][4];
	int i=0,j,max,k,u;
         while (scanf("%s%s\n",&s1[i],&s2[i])!=EOF)i++;
	for(j=0;j<=i;j++)
	{
		max=0;
		k=1;
		while(s1[j][k]!='\0')
		{
			if(s1[j][k]>s1[j][max])max=k;
			k++;
		}
		for(u=k-1;u>max;u--)
		{
			s1[j][u+3]=s1[j][u];
		}
		s1[j][max+1]=s2[j][0];
		s1[j][max+2]=s2[j][1];
		s1[j][max+3]=s2[j][2];
		s1[j][k+3]='\n';
		printf("%s",s1[j]);
}
}