semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main(){
	char a[900];
	gets(a);
	strcat(a," ");                                      //?????????
	int m=0,c[50],b[50],n=0,i;
	for(i=0;i<strlen(a);i++){
		if(a[i]==' '){                              //???????????????????c?????b              
           c[n]=i-m;b[n]=i;
		   m=i;n++;
		}
	}int x,y;
	x=0;
	y=0;
	for(i=0;i<n;i++){
		if(c[i]<=c[x]){                             //?????????????? ?????
			x=i;
		}
		if(c[i]>=c[y]){
			y=i;
		}
	}if(y==0){
for(i=0;i<b[y];i++){printf("%c",a[i]);}                     //???????c?b????????
}else{
	    for(i=b[y]-c[y]+1;i<b[y];i++){                  //??????
		printf("%c",a[i]);                          //????????????????????????????
	    }}                                              //??????
printf("\n");
if(x==0){
             for(i=0;i<b[x];i++){printf("%c",a[i]);}
             
         }else{
	    for(i=b[x]-c[x]+1;i<b[x];i++){
		printf("%c",a[i]);
	}}
	return 0;
}
int main()
{
	int n;
	int i;
	int j;
	int index=0;
	scanf("%d%*c",&n);
	char **pS=NULL;
	char **pS2=NULL;
	char buffer[256];
	char *temp=NULL;
	pS=(char **)malloc(sizeof(char **)*n);
	pS2=(char **)malloc(sizeof(char **)*n);
	for(index=0;index<n;index++)
	{
		temp=buffer;
		while((*(temp++)=getchar())!=' ')
		{
			if(*(temp-1)=='\n')
				break;
		}

		*(temp-1)='\0';

		pS[index]=(char *)malloc(temp-buffer);
		pS2[index]=(char *)malloc(temp-buffer);
		strcpy(pS[index],buffer);
		strcpy(pS2[index],buffer);
	}
	
	char *intermedia=NULL;

	for(i=0;i<n;i++)
		for(j=0;j<n-1;j++)
		{
			
			if(strlen(pS[j])<strlen(pS[j+1]))
			{
				intermedia=pS[j];
				pS[j]=pS[j+1];
				pS[j+1]=intermedia;
			}
		}

	for(i=0;i<n;i++)
		for(j=0;j<n-1;j++)
		{
			if(strlen(pS2[j])>strlen(pS2[j+1]))
			{
				intermedia=pS2[j];
				pS2[j]=pS2[j+1];
				pS2[j+1]=intermedia;
			}
		}
	printf("%s\n%s",pS[0],pS2[0]);


	return 0;
}
void main()
{
	char s[20000],a[100],maxa[100],mina[100];
	int len,min=1000,max=0,i,j;
	gets(s);
	for(i=0;;i++)
	{
		for(j=0;s[i]!=' '&&s[i]!=','&&s[i]!='\0';j++,i++)
		{
			a[j]=s[i];
		}
		a[j]='\0';
		len=strlen(a);
		if(len==0)
			continue;
		if(max<len)
		{
			max=len;
			strcpy(maxa,a);
		}
		if(min>len)
		{
			min=len;
			strcpy(mina,a);
		}
		if(s[i]=='\0')
			break;
	}
	printf("%s\n%s\n",maxa,mina);
}
int main ()
{
	int m,n,p[200]={0},i=0,j=0,b=0,c=10;
	char q[10];
scanf("%d",&n);
gets(q);
char a[200][200];
for(i=0;i<n;i++)
{
scanf("%s",&a[i]);
}
for(i=0;i<n;i++)
{
p[i]=strlen(a[i]);
}
for(i=0;i<n;i++)
{
if(b<p[i])
b=p[i];
}
for(i=0;i<n;i++)
{
if(c>p[i])
c=p[i];
}
for(i=0;i<n;i++)
{
if(p[i]==b)
{
	
		printf("%s\n",a[i]);
	break;
}
}
for(i=0;i<n;i++)
{
if(p[i]==c)
{
	
		printf("%s",a[i]);
	break;
}
}
return 0;
}
int main(){
	char juzi[NUM*LEN];
	char danci[NUM][LEN];
	int i, k, index;
	int maxLenDanCiIndex=0, minLenDanCiIndex=0;
	gets(juzi);
index = 0;
for(i = 0; ; i++){
	for(k = 0; ;){
		if(juzi[index] != ' ' && juzi[index] != 0){
			danci[i][k] = juzi[index];
			index++;
			k++;
		}else{
			danci[i][k] = 0;
			index++;
			k++;
			break;
		}
	}
	if(juzi[index-1] == 0){
		break;
	}
}
	
for(k = 1; k <= i; k++){
	if(strlen(danci[k]) > strlen(danci[maxLenDanCiIndex])){
		maxLenDanCiIndex = k;
	}

	if(strlen(danci[k]) < strlen(danci[minLenDanCiIndex])){
		minLenDanCiIndex = k;
	}
}
printf("%s\n", danci[maxLenDanCiIndex]);
printf("%s\n", danci[minLenDanCiIndex]);

	return 0;
}
int main()
{
	int x,y,i,k,I1,I2,J1,J2,l,m,n;
	char s[10000];
	gets(s);
	l=strlen(s);
	I1=J1=0;x=0;
	for(i=1;i<l+1;i++)
	{
		if((s[i]==' ')||(s[i]=='\0'))
		{
			k=x=m=n=i;I2=J2=i-1;
			break;
		}
	}
	for(i=k+1;i<l;i++)
	{
		if(s[i]==' ')
		{
			y=i-x-1;
			if(y>m){m=y;I1=x+1;I2=i-1;}
			if(y<n){n=y;J1=x+1;J2=i-1;}
			x=i;
		}
	}
	y=l-1-x;
	if(y>m){m=y;I1=x+1;I2=l-1;}
	if((y>0)&&(y<n)){n=y;J1=x+1;J2=l-1;}
	for(i=I1;i<=I2;i++) printf("%c",s[i]);
	printf("\n");
	for(i=J1;i<=J2;i++) printf("%c",s[i]);
	return 0;
}
int main()
{
   int i, y, z;
   char m[100], max[100],min[100];
   scanf("%s",m);
   y=z=strlen(m);
   strcpy(min,m);
   strcpy(max,m);
   for(i=1;i<50;i++)
   {
      scanf(" %s",m);
      if(y<strlen(m)){
          strcpy(max,m);
		  y=strlen(m);
      }
      if(z>strlen(m)){
          strcpy(min,m);
		  z=strlen(m);
      }
   }
   printf("%s\n%s",max,min);
   return 0;
}
int main()
{
	char a[100],b[100],c[100];
	int n,j,i,k,l,max,min;
	cin>>n;
	cin>>a;
	strcpy(b,a);
	strcpy(c,a);
	max=min=strlen(a);
	for(i=2;i<=n;i++)
	{
		cin>>a;
		k=strlen(a);
		if(k>max)
		{
			max=k;
			strcpy(b,a);
		}
		else if(k<min)
		{
			min=k;
			strcpy(c,a);
		}
	}
	cout<<b<<endl;
	cout<<c<<endl;
	return 0;
}
void main()
{
	char h,c[100][20];
	int i=0,j,n,d=0,e=20,f,g,a[100];
	for (j=0;;j++)
	{
		c[i][j]=getchar();
		if (c[i][j]==' ')
		{
			c[i][j]='\0';
			i=i+1;
			j=-1;
		}
		else if (c[i][j]=='\n')
		{
			c[i][j]='\0';
			break;
		}
	}
	n=i;
	for (i=0;i<=n;i++)
	{
	    a[i]=strlen(c[i]);
	}
	for (i=0;i<=n;i++)
	{
		if (a[i]>d)
		{
			d=a[i];
			f=i;
		}
		if (a[i]<e)
		{
			e=a[i];
			g=i;
		}
	}
	printf("%s\n",c[f]);
	printf("%s\n",c[g]);
}
int main()
{
	char a[1000],b[1000]={0},c[1000]={0},da[1000],xiao[1000];
	int i,m,n,j,i1,j1,i2,j2,s0,s=0,k=0,count=0,max=0,min=0;
	char x;
	gets(a);
	n=strlen(a);
	max=0;
	min=n+1;
	for(i=0;i<n;i++)
	{
		x=a[i];
		if(x==32||x==39||i==n-1)
		{
			if(count>max&&i!=n-1)
			{
				max=count;
				b[count]=0;
				strcpy(da,b);
			}
			else if(i==n-1)
			{
				count++;
				b[count-1]=a[i];
				if(count>max)
				{
					max=count;
					b[count]=0;
					strcpy(da,b);
				}
				break;
			}
			count=0;
		}
		else
		{
			count++;
			b[count-1]=a[i];
		}
	}
	count=0;
	for(i=0;i<n;i++)
	{
		x=a[i];
		if(x==32||x==39||i==n-1)
		{
			if(count<min&&i!=n-1)
			{
				min=count;
				c[count]=0;
				strcpy(xiao,c);
			}
			else if(i==n-1)
			{
				count++;
				c[count-1]=a[i];
				if(count<min)
				{
					min=count;
					c[count]=0;
					strcpy(xiao,c);
				}
				break;
			}
			count=0;
		}
		else
		{
			count++;
			c[count-1]=a[i];
		}
	}
	printf("%s\n",da);
	printf("%s\n",xiao);
	return 0;
}
int main(){
	char a[10000],b[200][50],x[50];
	int c[200],k,m=0,n,i,max,min,want1,want2;
	gets(a);
	for(k=0;k<200;k++)
	{
    	for(i=0;a[m]!=' '&&a[m]!=','&&a[m]!='\0';i++,m++)
		{
		    x[i]=a[m];
		}
	    x[i]='\0';
        strcpy(b[k],x);
         if(a[m]=='\0')
		{
			break;
		}
		 if(a[m]==','){
			 m=m+2;
		 }else{
	    m=m+1;
		 }
    }
	n=k+1;
    for(i=0;i<n;i++){
		c[i]=strlen(b[i]);
	}
	max=c[0];
	want1=0;
	for(i=1;i<n;i++){
		if(c[i]>max){
			max=c[i];
			want1=i;
		}
	}		                                    
   min=c[0];
   want2=0;
	for(i=1;i<n;i++){
		if(c[i]<min){
			min=c[i];
			want2=i;
		}
	}
	printf("%s\n",b[want1]);
	printf("%s",b[want2]);
	return 0;
}
//*********************
//function:??????
//date:2012/12/28
//writer:???
//*********************
int main()
{
	char a[1000] = {0};
	cin.getline(a, 1000);
	int len;
	int i;
	int longhead = 0, longend = 0, shorthead = 0, shortend = 0;
	int longlen = 0, shortlen = 100, templen = 0, temphead = 0;
	len = strlen(a);

	for (i = 0;i < len;i++)
	{
		if (a[i] != ' ' && a[i] != ',')
			templen++;
		else
		{
			if (templen > longlen)
			{
				longlen = templen;
				longhead = temphead;
				longend = i - 1;
			}
			if (templen < shortlen)
			{
				shortlen = templen;
				shorthead = temphead;
				shortend = i - 1;
			}
			temphead = i + 1;
			templen = 0;
			if (a[i] == ',')
				i++;
		}
	}
	if (templen > longlen)
	{
		longlen = templen;
		longhead = temphead;
		longend = i - 1;
	}
	if (templen < shortlen)
	{
		shortlen = templen;
		shorthead = temphead;
		shortend = i - 1;
	}
	for (i = longhead;i <= longend;i++)
		cout << a[i];
	cout << endl;
	for (i= shorthead;i <= shortend;i++)
		cout << a[i];
	cout << endl;
	return 0;
}
main()
{
int n,l,s,ln=0,sn=30,i=0;
char a[200][30];
scanf("%d",&n);
while(n--)
{
scanf("%s",a[i]);
if(ln<strlen(a[i]))
{
ln=strlen(a[i]);
l=i;
}
if(sn>strlen(a[i]))
{
sn=strlen(a[i]);
s=i;
}
i++;
}
printf("%s\n%s",a[l],a[s]);
}
void main()
{
    char string[300],max[20]="",min[20]="aaaaaaaaaaaaaaa";
    int length,len,sho;
    do
    {
    	scanf("%s",string);
    	length=strlen(string);
    	len=strlen(max);sho=strlen(min);
    	if(length>len) strcpy(max,string);
    	if(length<sho) strcpy(min,string);
    }while (getchar()!='\n');
    puts(max);
    puts(min);
}
int main()
{
	char sen[1000];
	gets(sen);
	char danci[50][100];
	int i,k,n,len;
	k=0;
	n=0;
	len=strlen(sen);
	for(i=0;i<len;i++){
		if(sen[i]!=' '){
			danci[n][k]=sen[i];
			k++;
		}
		else{
			danci[n][k]='\0';
			n++;
			k=0;
		}
	}
	danci[n][k]='\0';
	int max = 0;
	int min=0;
for (i=1; i<n+1; i++) {
if (strlen(danci[i]) < strlen(danci[min])) {
min = i;
}
if (strlen(danci[i]) > strlen(danci[max])) {
max = i;
}
}
/* ??????? */
puts(danci[max]);
puts(danci[min]);
return 0;
}
int main()
{
	char a[50][20],(*p)[20],*p1,*p2;
	int s=0;
	for(p=a;p<a+50;p++)
	{
		scanf("%s",*p);
		s++;
		if(getchar()=='\n')
			break;
	}
	p=a;
	p1=p2=*p;
	for(p=a+1;p<a+s;p++)
	{
		p1=strlen(*p)>strlen(p1)?*p:p1;
		p2=strlen(*p)<strlen(p2)?*p:p2;
	}
	printf("%s\n",p1);
	printf("%s",p2);
	return 0;
}
int main(){
	int b[200],i,j,k,e,t=0,l=0,n=0;
	char  a[2000];
    char  *p;
    gets(a);
	for( i=0;i<200;i++){
		b[i]=0;
	}
	i=0;
	for(p=a;*p!='\0';p++){
		if(*p!=' ' && *p!=','){
			b[i]++;
		}
		else{ 
			i++;
			if(*p==','){
			  p=p+1;
			}

		}
	}
	if(i==0){
		printf("%s\n%s\n",a,a);
	}
	else{
	for(k=1;k<=i+1;k++){
		for(j=0;j<i+1-k;j++){
			if(b[j]<=b[j+1]){
				e=b[j];
				b[j]=b[j+1];
				b[j+1]=e;
			}
		}
	}

	if(b[0]==b[i]){
		for(p=a;*p!=' ';p++){
		   printf("%c",*p);
		}
		printf("\n");
        for(p=a;*p!=' ';p++){
		   printf("%c",*p);
		}
		
	}
	else{
	for(p=a;*p!='\0';p++){
		if(*p!=' ' && *p!=','){
			t++;
		
	    	
			}
	    else{
		
			if(t==b[0]){
				for(p=p-t;*p!=' ';p++){
					printf("%c",*p);
                    l=1;
				}
				break;
			}
		    t=0;
			
		}
	}
	if(l==0){
		printf("%s\n",p-t);
	}
	else{
		printf("\n");
	}
	t=0;

    for(p=a;*p!='\0';p++){
		
		if(*p!=' ' && *p!=','){
			t++;
			
		}
		if(*p==' ' || *p==','){
			if(t==b[i]){
				for(p=p-t;*p!=' ';p++){
					printf("%c",*p);
					n=1;
				}
				break;
			}
			t=0;
			
		}
	}	
	if(n==0){
		printf("%s\n",p-t);
	}
	}
	}

    return 0;
}
void main()
{
	int i,j,k,m,n,p,q;
	char ch[40],sh[40];
	char lolo[3000]="\0";
	char alei[40]="\0";
	gets(lolo);
	k=0;m=41;
	for(i=0;lolo[i]!='\0';i++)
	{   
		if(lolo[i]==' '||lolo[i]==',') i++;
		for(j=0;lolo[i]!=' '&&lolo[i]!=','&&lolo[i]!='\0';i++,j++)
		{
            alei[j]=lolo[i];
		}
		alei[j]='\0';
		if(j>k) {strcpy(ch,alei);k=j;}
		if(j<m) {strcpy(sh,alei);m=j;}
	}
	printf("%s\n",ch);
	printf("%s\n",sh);

}
void main()
{
	char v[2000],a[50][50];
	int i=0,m=100,n=0,p1,p2,k=0,j=0;
	while((v[i]=getchar())!='\n')
	{
		if(v[i]!=' ')
		{
			a[j][k]=v[i];
			k++;
		}
		if(v[i]==' ')
		{
			a[j][k]='\0';
			j++;
			k=0;
		}
		i++;
	}
	a[j][k]='\0';
	for(i=0;i<=j;i++)
	{
		if(strlen(a[i])>n)
		{
			n=strlen(a[i]);
			p1=i;
		}
		if(strlen(a[i])<m)
		{
			m=strlen(a[i]);
			p2=i;
		}
	}
			printf("%s\n",a[p1]);
			printf("%s\n",a[p2]);
}
int main()
{
	int n,i,l=0,s=100,p;
	char a[200][100];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s",&a[i]);
		p=strlen(a[i]);
		if(p>l)
			l=p;
		if(p<s)
			s=p;
	}
	for(i=0;i<n;i++)
	{
		p=strlen(a[i]);
		if(p==l)
		{
			puts(a[i]);
			break;
		}
	}
	for(i=0;i<n;i++)
	{
		p=strlen(a[i]);
		if(p==s)
		{
			puts(a[i]);
			break;
		}
	}
	return 0;
}
void main()
{
	char a[2000];
	int k[200]={0},i,j=1,n,m=1,l=1,o[200]={0};
	gets(a);
	n=strlen(a);
	for(i=0;i<n;i++)
	{
		if(a[i]!=','&&a[i]!=' ')
		{k[j]++;}
		else
		{
			if(a[i]==' ')
			{o[j]=i;j++;}
			
		}
	}
	o[j]=n;
	
		for(i=1;i<=j;i++)
	{
		for(l=1;l<=j;l++)
		{
			if(k[i]<k[l])break;
		}
		if(l==j+1)
		break;
	}
			for(l=o[i]-k[i];l<o[i];l++)
		printf("%c",a[l]);
	printf("\n");
	for(i=1;i<=j;i++)
	{
		for(l=1;l<=j;l++)
		{
			if(k[i]>k[l])break;
		}
		if(l==j+1)
		break;
	}
	for(l=o[i]-k[i];l<o[i];l++)
		printf("%c",a[l]);

}
void main()
{
	char word[201][30]={0};
	int i,j,n,a[201]={0},flag=0;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%s",word+i);
		a[i]=strlen(*(word+i));
	}
	for(i=0;i<n;i++){
		flag=0;
		for(j=0;j<n;j++){
			if(*(a+i)<*(a+j)){
				flag=1;
				break;
			}
		}
		if(flag==1) continue;
		else if(flag==0){
			printf("%s\n",*(word+i));
			break;
		}
	}
	for(i=0;i<n;i++){
		flag=0;
		for(j=0;j<n;j++){
			if(*(a+i)>*(a+j)){
				flag=1;
				break;
			}
		}
		if(flag==1) continue;
		else if(flag==0){
			printf("%s\n",*(word+i));
			break;
		}
	}
}
void main()
{
	int i,num=0,a[50],max,min;
	char str[50][20],strmax[20],strmin[20],z;
	for(i=0;;i++)
	{
		scanf("%s",str[i]);
		a[i]=strlen(str[i]);
		num++;
		scanf("%c",&z);
		if(z=='\n') break;
	}
	max=a[0];
	min=a[0];
	strcpy(strmax,str[0]);
	strcpy(strmin,str[0]);	
	for(i=1;i<num;i++)
	{
		if(a[i]>max)
		{
			max=a[i];
			strcpy(strmax,str[i]);
		}
		if(a[i]<min)
		{
			min=a[i];
			strcpy(strmin,str[i]);
		}
	}
	printf("%s\n%s",strmax,strmin);
}
int main()
{
	char line[ 1000 ] = { 0 };//?????????????????0
	char longestWord[ 100 ] = { 0 };//??????
	char shortestWord[ 100 ] = { 0 };//??????
	char *tokenPtr;//???line[]???????????
	int maxLength = 0;//???????????????????
	int minLength = 10000;//???????????????????????
	int currentLength = 0;//??????????????????
	int i = 0;//????
	char c;//?????????????

	c = getchar();//???????
	while ( c != '\n' )//?????????
	{
		line[ i ] = c;
		i++;
		c = getchar();//?????????
	}//while??
	line[ i ] = 0;//??????
	if ( strlen( line ) == 0 )//????????????????
		return 0;

	tokenPtr = strtok( line, " " );//???????????????
	while ( tokenPtr != NULL )//????????
	{
		currentLength = strlen( tokenPtr );
		if ( currentLength > maxLength )//???????????????
		{
			maxLength = currentLength;//???????????
			strcpy( longestWord, tokenPtr );//??????????????
		}
		if ( currentLength < minLength )//???????????????
		{
			minLength = currentLength;//???????????
			strcpy( shortestWord, tokenPtr );//??????????????
		}
		tokenPtr = strtok( NULL, " " );//??????????????????
	}
	
		printf( "%s\n", longestWord );
        printf( "%s\n", shortestWord );


	return 0;
}
void main()
{
	char c[1000];
	int i,count=0,max,min,mark1,mark2,length;
	gets(c);
	length=strlen(c);
	for(i=0;i<length+1;i++)
	{
		if(c[i]!=' '&&c[i]!='\0')
			count++;
		else
		{
			if(c[i-1]==',')
				count--;
			max=min=count;
			count=0;
			mark1=mark2=0;
			break;
		}
	}
	for(i=0;i<length+1;i++)
	{
		if(c[i]!=' '&&c[i]!='\0')
			count++;
		else
		{
			if(c[i-1]==',')
				count--;
			if(max<count)
			{
				max=count;
				mark1=i-max;
			}
			if(min>count)
			{
				min=count;
				mark2=i-min;
			}
			count=0;
		}
	}
	for(i=0;i<max;i++)
		printf("%c",c[mark1+i]);
	printf("\n");
	for(i=0;i<min;i++)
		printf("%c",c[mark2+i]);
	printf("\n");
}
void main()
{
	char string[400];
	int a[50],i,t=0,n=0,b[50],max=0,min=100000,x1,x2,y1,y2,l,x,y;
	gets(string);
	for(i=0;string[i]!='\0';i++)
	{
		if(string[i]==' ')
		{
			a[t]=i;
			t++;
		}
	}
	for(i=0;string[i]!='\0';i++)
	{
		if(string[i]==' ')
			n++;
	}
	l=strlen(string);
	b[0]=a[0]+1;
	b[n]=l-a[n-1];
	for(i=1;i<n;i++)
	{
		b[i]=a[i]-a[i-1];
	}
	for(i=0;i<=n;i++)
	{
		if(b[i]>max)
			max=b[i];
	}
	for(i=0;i<=n;i++)
	{
		if(b[i]==max)
		{
			x=i;
		if(x==n)
		{
			x1=a[i-1];
			y1=l;
		}
		else
		{
			x1=a[i-1];
		y1=a[i];
		}
		break;
		}
	}
	if(x1==0)
	{
	for(i=x1;i<=y1-1;i++)
		printf("%c",string[i]);
	}
	else
	{
		for(i=x1+1;i<y1;i++)
			printf("%c",string[i]);
	}
	printf("\n");
	for(i=0;i<=n;i++)
	{
		if(b[i]<min)
			min=b[i];
	}
	for(i=0;i<=n;i++)
	{
		if(b[i]==min)
		{
			y=i;
		if(y==n)
		{
			x2=a[i-1];
			y2=l;
		}
		else
		{
             x2=a[i-1];
		y2=a[i];
		}
		break;
		}
	}
    if(x2==0)
	{
	for(i=x2;i<=y2-1;i++)
		printf("%c",string[i]);
	}
	else
	{
	for(i=x2+1;i<=y2-1;i++)
    printf("%c",string[i]);
	}	
}
int main()
{
	int min = INT_MAX, max = INT_MIN, n1, n2, i, n = 0;             // max,min??????????????,n1,n2??????????????,n?????
	char a[201] = {'\0'};
	cin.getline(a, 201, '\n');
	for (i = 0; a[i] != '\0'; i++)                    // ??????????
	{
		if (a[i] != ' ' && a[i] != ',')
			break;
	}
	for (; a[i] != '\0'; i++)                         // ?????????????????????????
	{
		if (a[i] == ' ' || a[i] == ',')
		{
			min = n;
			max = n;
			n1 = i;
			n2 = i;
			n = 0;
			break;
		}
		else
			n += 1;
	}
	if (a[i] != 0)
		i++;
	for (; a[i] != '\0'; i++)
	{
		if ((a[i] == ' ' || a[i] == ',') && n != 0)                    // ?????????????????????
		{
			if (n > max)
			{
				max = n;
				n2 = i;
			}
			if (n < min)
			{
				min = n;
				n1 = i;
			}
			n = 0;
		}
		else if ((a[i] == ' ' || a[i] == ',') && n == 0)           // ????????????
			continue;
		else
			n += 1;
	}
	if (n != 0)                         // ????????????????????????
	{
		if (n > max)
		{
			max = n;
			n2 = i;
		}
		if (n < min)
		{
			min = n;
			n1 = i;
		}
	}
	for (i = n2 - max; i < n2; i++)
		cout << a[i];
	cout << endl;
	for (i = n1 - min; i < n1; i++)
		cout << a[i];
	return 0;
}
void main()
{
    char a[1000];
	int b[50],i,j=0,c,d[50],max=0,min=1000,k;
	gets(a);
	c=strlen(a);
	b[0]=0;
	for(i=0;i<c;i++)
		if(a[i]==' ')
		{
			j++;
			b[j]=i+1;
		}
		b[j+1]=c+1;
	for(i=0;i<j+1;i++)
	{
		d[i]=b[i+1]-b[i]-1;
		max=(max>=d[i])?max:d[i];
		min=(min>=d[i])?d[i]:min;
	}
	for(i=0;i<j+1;i++)
	{
		if(d[i]==max)
		{
			for(k=b[i];k<b[i+1]-1;k++)
				printf("%c",a[k]);
				break;
		}		
	}
	printf("\n");
	for(i=0;i<j+1;i++)
	{
		if(d[i]==min)
		{
			for(k=b[i];k<b[i+1]-1;k++)
				printf("%c",a[k]);
				break;
		}			
	}
}
void main()
{
	int i,j;
	char word[40],Max_word[40]="",Min_word[40]="afwefjaklwejfioajwe";
	do
	{
		scanf("%s",word);
		if (strlen(word)>strlen(Max_word)) strcpy(Max_word,word);
		if (strlen(word)<strlen(Min_word)) strcpy(Min_word,word);
	} while (getchar()!='\n');
	puts(Max_word);
	puts(Min_word);
}
int main()
{
    char z[999],k[55],h[55];
    int  i,j,n,max,min,x,n1,n2,n3,n4;
    int m[55];
    int q=0,o=0;
    gets(z);
    n=strlen(z);
    int p=1;
    for(i=0;i<n;i++){
        if(z[i]==' '){
           m[p]=i;
           p++;
        }
    }
	m[0]=-1;
	m[p]=n;
	n1=n3=-1;
	n2=n4=m[1];
    max=min=m[1]-m[0]-1;
    if(p>1){
      for(j=0;j<p;j++){
         x=m[j+1]-m[j]-1;
         if(x>max){
            max=x;
            n1=m[j];
            n2=m[j+1];
         }else if(x<min){
            min=x;
            n3=m[j];
            n4=m[j+1];
         }
	  }
      
     for(i=n1+1;i<n2;i++){
         k[q]=z[i];
         q++;
      }
      k[q]='\0';
      for(i=n3+1;i<n4;i++){
         h[o]=z[i];
         o++;
      } 
      h[o]='\0';
   }
  
   printf("%s\n%s",k,h);
   return 0;
}
int main()
{
  char s[20],min[20],max[20];
  char c;
  strcpy(min,"1111111111111111111");
  max[0]='\0';  
  while(1)
    {
        scanf("%s",s); 
        if(strlen(min)>strlen(s)) strcpy(min,s);  
        if(strlen(max)<strlen(s)) strcpy(max,s);
        c=getchar();  if(c=='\n') break;
    } 
  printf("%s\n",max);
  printf("%s\n",min);
}
int main(){
char str[500];
int i,j,longest=0,shortest=20,lenth,k=-1,a,b,c,d;
gets(str);
for(i=0;str[i]!='\0';i++)
{if(str[i]==' ')
{lenth=i-k;
if(lenth>longest)
{longest=lenth;
a=i;
b=k;}
if(lenth<shortest)
{shortest=lenth;
c=i;
d=k;}
k=i;}}
if(str[i]=='\0')
{lenth=i-k;
if(lenth>longest)
{longest=lenth;
a=i;
b=k;}
if(lenth<shortest)
{shortest=lenth;
c=i;
d=k;}
}
for(j=b+1;j<a;j++){
printf("%c",str[j]);}
printf("\n");
for(j=d+1;j<c;j++){
printf("%c",str[j]);}
return 0;
}
int main()
{
char a[2000];
int n,lmax=0,lmin=0,smax=0,smin=0,e=0,s=0,i,emax,emin;
gets(a);
n=strlen(a);
for(i=0;i<n;i++)
{
if(a[i]==' ')
{
lmax=i;
lmin=i;
emax=i;
emin=i;
break;
}
}
for(i=0;i<=n;i++)
{
if(a[i]==' '|| (i == n)){
e=i;
if(e-s>lmax)
{
lmax=e-s;
smax=s;
emax=e;
}
if(e-s<lmin)
{
lmin=e-s;
smin=s;
emin=e;
}
while(a[i]==' ')
i++;
s = i;
}
}
char max[300],min[300];
int j=0;
for(i=smax;i<emax;i++)
{
max[j]=a[i];
j++;
}
max[lmax]='\0';
j = 0;
for(i=smin;i<emin;i++)
{
min[j]=a[i];
j++;
}
min[lmin]='\0';
puts(max);
puts(min);
return 0;
}
int main()
{char a[100],*p;
int n=0,b[100],s[100],e,d,max,min,i,*h,*q;
gets(a);
p=a;
h=s;
q=b;
q[0]=-1;
for(i=0;p[i]!='\0';i++)
{if(p[i]==' ')
{n=n+1;
q[n]=i;}
}
for(i=q[n]+1;p[i]!='\0';i++)
{}
n=n+1;
q[n]=i;
for(i=1;i<=n;i++)
h[i]=q[i]-q[i-1]-1;
max=h[1];min=h[1];
for(i=1;i<=n;i++)
{if(max<h[i])
max=h[i];
if(min>h[i])
min=h[i];
}
for(i=1;i<=n;i++)
{if(h[i]==max)
{d=i;break;}
}
for(i=q[d-1]+1;i<q[d];i++)
printf("%c",p[i]);
printf("\n");
for(i=1;i<=n;i++)
{if(h[i]==min)
{e=i;break;}
}
for(i=q[e-1]+1;i<q[e];i++)
printf("%c",p[i]);
return 0;
}
int main()
{
	char s[200][100]={""};
	int n,i,len[200]={0},*p,*max,*min;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s",&s[i]);
		len[i]=strlen(s[i]);
	}
	p=&len[0];
	max=&len[0];
	min=&len[0];
    for(i=0;i<n;i++)
    {
		if(*(p+i)>*max)
			max=p+i;
		else if(*(p+i)<*min)
			min=p+i;
	}
		for(i=0;i<n;i++)
		{
			if(*(p+i)==*max)
			{
				printf("%s\n",s[i]);
				break;
			}
		}

		for(i=0;i<n;i++)
		{
			if(*(p+i)==*min)
			{
				printf("%s",s[i]);
				break;
			}
		}


	return 0;
}
void main()
{
	char *p;
	int i,j,k,m,n,t,*a,max,min,i1,*b;
	p=(char *)malloc(10000*sizeof(char));
	a=(int *)malloc(10000*sizeof(int));b=(int *)malloc(10000*sizeof(int));
	gets(p);
	n=strlen(p);
	j=0;k=0;t=0;
	for(i=0;i<n;i++)
	{
		
		if(*(p+i)!=' ')
			k++;
		else
		{
			*(a+j)=k;*(b+j)=i+1;
			k=0;
			j++;
		}
	}
		k=0;
		for(i1=n-1;i1>=0;i1--)
		{
			if(*(p+i1)!=' ')
				k++;
			else
				break;
		}
		if(i1<0)
			*(a+j)=n;
		else
			*(a+j)=k;
		*(b+j)=n+1;
		max=*a;
		for(i1=0;i1<=j;i1++)
			if(*(a+i1)>max)
			{
				max=*(a+i1);
				t=i1;
			}
			if(t!=0)
			{
			for(i1=*(b+t-1);i1<(*(b+t)-1);i1++)
				printf("%c",*(p+i1));
			}
			else
				for(i1=0;i1<*(b+t)-1;i1++)
					printf("%c",*(p+i1));
			printf("\n");

           t=0;
			min=*a;
		for(i1=0;i1<=j;i1++)
			if(*(a+i1)<min)
			{
				min=*(a+i1);
				t=i1;
			}
			if(t!=0)
			{
			for(i1=*(b+t-1);i1<(*(b+t)-1);i1++)
				printf("%c",*(p+i1));
			}
			else
				for(i1=0;i1<*(b+t)-1;i1++)
					printf("%c",*(p+i1));
			printf("\n");

			

	
}
int main(){
	char a[50][20];
	char b,c[50],d[50];
	int i,j;
	for(i=0;;i++){
		scanf("%s",a[i]);
		scanf("%c",&b);
		if(b=='\n'){
			j=i;
			break;}}
	strcpy(c,a[0]);
	strcpy(d,a[0]);

	for(i=0;i<=j;i++){
		if(strlen(a[i])>strlen(c))
			strcpy(c,a[i]);
		if(strlen(a[i])<strlen(d))
	         strcpy(d,a[i]);
	}
	printf("%s\n%s\n",c,d);
	return 0;
}
int main()
{
	int n,count[201]={0},paixu[201]={0},flag,len,m,tem,i,j;
	char sen[2000],word[201][50];
	scanf("%d",&n);
	scanf("\n");
	gets(sen);
	len=strlen(sen);
	flag=0;
	m=0;
	for(i=0;i<len;i++)
	{
		if((sen[i]!=' ')&&(flag==1))
			word[m][count[m]++]=sen[i];
		if((sen[i]!=' ')&&(flag==0))
		{word[m][count[m]++]=sen[i];flag=1;}
		if((sen[i]==' ')&&(flag==1))
		{m++;flag=0;}
	}
	for(i=0;i<=m;i++)
		paixu[i]=count[i];
	for(i=0;i<=m;i++)
		for(j=i+1;j<=m;j++)
			if(paixu[i]<paixu[j])
			{
				tem=paixu[i];
				paixu[i]=paixu[j];
				paixu[j]=tem;
			}
	for(i=0;i<=m;i++)
	{
		if(count[i]==paixu[0])
		{
			for(j=0;j<count[i];j++)
				printf("%c",word[i][j]);
			break;
		}
	}
	printf("\n");
	for(i=0;i<=m;i++)
	{
		if(count[i]==paixu[m])
		{
			for(j=0;j<count[i];j++)
				printf("%c",word[i][j]);
			break;
		}
	}
	return 0;
}
void main()
{
	char str[80][80],str1[80];
	int i=0,j=0,min=80,max=0,num=0,k,t,len,len1,lens;
	gets(str1);
	lens=strlen(str1);
  for(j=0;str1[j]!='\0';j++)
	{
		str[num][i++]=str1[j];
		k=i;
		if(str1[j]==' '||str1[j]=='\n')
		{
			str[num][i-1]='\0';
			num++;
				i=0;
		}
		t=num;
	
	}
	str[t][k]='\0';
	for(i=lens-1;;i--)
		if(str1[i]==' ')
		{
			k=i;
			break;
		}
 		j=0;
       for(i=k+1;i<lens;i++)
   str[t+1][j++]=str1[j];
   str[t+1][j]='\0';
	for(i=0;i<t+1;i++)
	{
		len1=strlen(str[i]);
		max=max>len1?max:len1;
		min=min<len1?min:len1;
	}
	for(i=0;i<t+1;i++)
	{
         len=strlen(str[i]);
		if(max==len)
		{
			printf("%s\n",str[i]);
			break;
		}
	}
	for(i=0;i<t+1;i++)
	{
		len=strlen(str[i]);
		if(min==len)

		{	
			printf("%s\n",str[i]);
			break;
		}
	}
}