semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{
char a[100][20],c;
int b[100],k=0,i,max=0,min=100,s,t;
do
	{
		scanf("%s",a[k]);
		k++;
		scanf("%c",&c);
	}
	while(c!='\n');
for(i=0;i<k;i++)
{
	b[i]=strlen(a[i]);
	if(b[i]>max)
	{
		max=b[i];
		s=i;
	}
	if(b[i]<min)
	{
		min=b[i];
		t=i;
	}
}
printf("%s\n%s\n",a[s],a[t]);
}
void main()
{char str[1000];
int shu[50];
int i,j=0,k=0,max,min;
int sum1=0,sum2=0;
gets(str);
for(i=0;i<strlen(str);i++)
{
	if(str[i]!=' ')
		j++;
	else
	{
		shu[k]=j;
		k++;
		j=0;
	}

	if(i==(strlen(str)-1))
		shu[k]=j;
}
max=shu[0];min=shu[0];
for(i=0;i<=k;i++)
{
	if(shu[i]>max)  max=shu[i];
}
for(i=0;i<=k;i++) 
{
	if(shu[i]<min) min=shu[i];
}
for(i=0;i<=k;i++)
{
	if(shu[i]==max) break;
	else
	{
		sum1=sum1+shu[i];
	}
}
for(j=i+sum1;j<i+sum1+shu[i];j++)
printf("%c",str[j]);
printf("\n");
for(i=0;i<=k;i++)
{
	if(shu[i]==min) break;
	else
	{
		sum2=sum2+shu[i];
	}
}
for(j=i+sum2;j<i+sum2+shu[i];j++)
printf("%c",str[j]);

}
void main()
{
	char str[300];
	int i,num[30],j=0,n,max,min,sum1=0,sum2=0;
	 
	gets(str);
	for (i=0;i<30;i++)
		num[i]=0;
	for (i=0;i<strlen(str);i++)
	{if (str[i]==' ') j++;
	else
		num[j]++;}
	n=j+1;
	max=0;min=0;
	for (j=0;j<n;j++)
	   {if (num[j]>num[max]) max=j;
		if (num[j]<num[min])min=j;}
	for (j=0;j<max;j++)
	sum1=sum1+num[j];
	for (j=0;j<min;j++)
	sum2=sum2+num[j];
	for (i=sum1+max;i<sum1+max+num[max];i++)

	printf ("%c",str[i]);
	printf("\n");
	for (i=sum2+min;i<sum2+min+num[min];i++)
		printf("%c",str[i]);

		


}
int main(){
	int changdu[200];
	char zfc[2000];
	int weizhi[200];
	int n;
	int i,j;
	int k=1;
	int l;
	int s=0;
	int e,f;
	gets(zfc);
	n=strlen(zfc);
	for(i=0;i<n;i++){
		if(zfc[i]==' '||zfc[i]==','){
			weizhi[k]=i;
			k++;
		}
	}
	l=k;
	weizhi[0]=-1;
	weizhi[l]=n;
	for(k=0;k<l;k++){
		changdu[k]=weizhi[k+1]-weizhi[k]-1;
		if(changdu[k]==0){
			changdu[k]=10;
		}
	}
	for(j=0;j<l;j++){
		if(s<changdu[j]){
			s=changdu[j];
			e=j;
		}
	}
	s=10;
	for(j=0;j<l;j++){
		if(s>changdu[j]){
			s=changdu[j];
			f=j;
		}
	}
	for(i=weizhi[e]+1;i<weizhi[e+1];i++){
		printf("%c",zfc[i]);
	}
	printf("\n");
	for(i=weizhi[f]+1;i<weizhi[f+1];i++){
		printf("%c",zfc[i]);
	}
	printf("\n");
	return 0;
}
int main()
{
	char yj[5000];
	gets(yj);

	char a[20],max[20],min[20];
	int i,k;
	int first=0;
	int dx=strlen(yj);
	for(i=0;i<dx+1;i++){
		if(i==0){
			first=1;
		}else{
			first=0;
		}
		for(k=i;;k++){
			
			if((yj[k]!=',')&&(yj[k]!=' ')&&(yj[k]!='\0')){
				a[k-i]=yj[k];	
			}else{
				a[k-i]='\0';
				i=k;
				break;
			}
		}
		if(first==1){
					strcpy(max,a);
					strcpy(min,a);
		}else{
			if(strlen(a)>strlen(max)){
						strcpy(max,a);
					}
			if(strlen(a)<strlen(min)&&strlen(a)!=0){
						strcpy(min,a);
					}
				}
					
		
	}
	printf("%s\n%s",max,min);
	return 0;
}
int main() 
{ 
int max=0; 
int x=0; 
int min=20; 
int y=0; 
char string[4000]; 
char str[40][20]; 
char temp[20]=""; 
int k=0,j=0,i,n,m; 

gets(string); 

n=strlen(string); 
for (i=0;i<n;i++) 
{ 
if ( string[i]!=' ') 
{ 
temp[k]=string[i]; 
str[j][k]=string[i]; 
k++; 
} 
else 
{ 
strcpy(str[j],temp); 
k=0;j++; 
for(m=0;m<20;m++)temp[m]=0; 

} 
if(i==n-1){ 
strcpy(str[j],temp); 
for(m=0;m<20;m++)temp[m]=0;  
} 


} 
for(i=0;i<=j;i++){ 

if(strlen(str[i])>max){ 
max=strlen(str[i]); 
x=i; 
} 
if(strlen(str[i])<min){ 
min=strlen(str[i]); 
y=i;} 
} 

printf("%s\n",str[x]); 
printf("%s",str[y]); 
return 0; 
}
void main()
{
	char str[1000];
	char *p;
	int len,i,a[100]={0},m=0,t=0,n=0,max,min,pmax,pmin,summax=0,summin=0;
	gets(str);
	p=str;
	len=strlen(str);
	for (i=0;i<len+1;i++)
	{
		if (((*(p+i)>='a')&&(*(p+i)<='z')) || ((*(p+i)>='A') && (*(p+i)<='Z')))
		{
			m=m+1;
		}
		else
		{
			a[t]=m;
			t++;
			m=0;	
		}
	}
	t=0;
	while (a[t]!=0)
	{
		t++;
	}
	max=a[0];
	min=a[0];
	for (i=0;i<t;i++)
	{
		if (a[i]>max)
		{
			max=a[i];
		}
	}
	for (i=0;i<t;i++)
	{
		if (a[i]<min)
		{
			min=a[i];
		}
	}
	for (i=0;i<t;i++)
	{
		if (a[i]==max)
		{
			pmax=i;
			break;
		}
	}
	for (i=0;i<t;i++)
	{
		if (a[i]==min)
		{
			pmin=i;
			break;
		}
	}
	for (i=0;i<pmax;i++)
	{
		summax=summax+a[i]+1;

	}
	for (i=0;i<pmin;i++)
	{
		summin=summin+a[i]+1;
	}
	for (i=0;i<a[pmax];i++)
	{
		printf("%c",str[summax+i]);
	}
    printf("\n");
	for (i=0;i<a[pmin];i++)
	{
		printf("%c",str[summin+i]);
	}
	return;
}
int main()
{
	int n;
	scanf("%d",&n);
	char s[300],s1[300],s2[300];
	scanf("%s",s1);
	strcpy(s2,s1);
	int l,l1,l2;
	l1=l2=strlen(s1);
	n=n-1;
	while(n)
	{
		n=n-1;
		scanf("\n");
		scanf("%s",s);
		l=strlen(s);
		if (l<l1)
		{
			strcpy(s1,s);
			l1=l;
		}
		if (l>l2)
		{
			strcpy(s2,s);
			l2=l;
		}
	}
puts(s2);
printf("%s",s1);
return 0;
}
int main()
{
   int n,j,i,a[100],e;
   char zf1[100],zf2[100]="\0",zf[100][100];
   for (i=0;i<50;i++){
        scanf("%s",&zf[i]);
        a[i]=strlen(zf[i]);
   }
   n=i-1;
   for (j=0;j<49;j++){
        for (i=0;i<49-j;i++){
            if (a[i]>a[i+1]){
                strcpy(zf1,zf[i+1]);
                strcpy(zf[i+1],zf[i]);
                strcpy(zf[i],zf1);
                e=a[i];
                a[i]=a[i+1];
                a[i+1]=e;
            }
        }
   }
   printf("%s\n%s",zf[49],zf[0]);
   for (i=0;i<49;i++){
       if (strcmp(zf[i],zf2)!=0){
           printf("%s",zf[i]);
           break;
       }      
   }
   return 0;
}
int main()
{
	char c[2000]={0};
	gets(c);
	int a[201][2]={0};
    int i,j,k,l,p1,q1,q2,p2;
	i=0;
	j=0;
	l=strlen(c);
	k=0;
	p1=0;q1=0;
	p2=0;q2=19000;
//	printf("%d\n",l);
	while(j<l)
	{
		for (i=j;i<l;i=i+1)
		{if ((c[i]!=' ')&&(c[i]!=',')) break;}
			for (j=i;j<l;j=j+1)
			{	if ((c[j]==' ')||(c[j]==',')) break;}
			if ((j-i)>(q1-p1)) 
			{
				p1=i;
				q1=j;
			}
			if ((j-i)<(q2-p2)) 
			{
				p2=i;
				q2=j;
			}
		
	}
 
  for (i=p1;i<q1;i=i+1) printf("%c",c[i]);
  printf("\n");
  for (i=p2;i<q2;i=i+1) printf("%c",c[i]);
  return 0;
}
int main()
{
	char a[1000]={0},b[200][50];
	gets(a);
	int j=0,i=0,k=0,max=0,min=100,x,y,n;
	n=strlen(a);
	for(k=0;k<n;k++)
	{
		while(a[k]!=' '&&a[k]!=','&&a[k]!=0)
		{
			b[i][j++]=a[k++];
		}
	
		if(j!=0)
		{
			if(j>max){max=j;x=i;}
			if(j<min){min=j;y=i;}
			j=0;i++;
		}
	}
	printf("%s\n%s",b[x],b[y]);
	return 0;
}
void main()
{
	int sup,inf,i=0,j,max,min;
	char str[200][100],b;
	while(1)
	{scanf("%s%c",str[i],&b);
		if(b!=' '&&b!=',') break;
		else i++;
	}
	sup=strlen(str[0]);
	max=0;
	inf=strlen(str[0]);
	min=0;
	for(j=1;j<=i;j++)
	{if(strlen(str[j])>sup)
	{sup=strlen(str[j]);
	max=j;}
	if(strlen(str[j])<inf)
	{inf=strlen(str[j]);
	min=j;}
	}
	printf("%s\n%s",str[max],str[min]);
}
int main(){
 int a,b=0,c=100,n,i,cd[200],tag=0;
 char dc[200][20],jz[400];
 gets(jz);
 n=strlen(jz);
 for(i=0;i<n;i++){
  a=0;
  while(jz[i]!=' '&&jz[i]!=','&&i<n){
   dc[tag][a]=jz[i];
            a++;
   i++;
  }
  if(jz[i]==','&&jz[i+1]==' '){
   i++;
  }
      cd[tag]=a;
      dc[tag][a]='\0';
      tag++;
 }
 for(i=0;i<tag;i++){
  if(b<cd[i]){
   b=cd[i];
  }
 }
 for(i=0;i<tag;i++){
  if(c>cd[i]){
   c=cd[i];
  }
 }
 for(i=0;i<tag;i++){
  n=cd[i];
  if(n==b){
   puts(dc[i]);
   break;
  }
 }
 for(i=0;i<tag;i++){
  n=cd[i];
  if(n==c){
   puts(dc[i]);
   break;
  }
 }
 return 0;
}
int main(){
char a[51][50];
int i,c,b,d,e,q[50];
b=0;
c=100;
for(i=0;i<51;i++){
	scanf("%s",a[i]);
	if(a[i][0]>=65&&a[i][0]<=122){
	q[i]=strlen(a[i]);
    if(q[i]>b){b=q[i];d=i;}
	if(q[i]<c){c=q[i];e=i;}}
	else{break;}
}
	
printf("%s\n",a[d]);
printf("%s\n",a[e]);
return 0;
}
void main()
{
  int h,i,j=0,k=0,l=0,t,p,d=1;
  char a[500];
  int b[50],c[50];
  gets(a);
  h=strlen(a);
  for(i=0;i<=h;i++)
  {
  if(((a[i]>='a')&&(a[i]<='z'))||((a[i]>='A')&&(a[i]<='Z')))
  {j++;}
  if((a[i]==' ')||(a[i]=='\0'))
  {
  l++;
  c[l]=i;
  b[l]=j;
  j=0;
  } 
  }
  for(i=1;i<=l;i++)
   {
   for(j=1;j<=l-i;j++)
   if(b[j]<b[j+1])
   	{
   		t=b[j];
   		b[j]=b[j+1];
   		b[j+1]=t;
   		p=c[j];
   		c[j]=c[j+1];
   		c[j+1]=p;
   	}
   }
  for(i=2;i<=l;i++)
  {
  	if(c[i]!=c[1])
  	break;
  	if(c[i]==c[1])
  	d++;
  }
   for(i=1;i<=d;i++)
   {
   for(j=1;j<=d-i;j++)
   if(c[j]>c[j+1])
   	{
   		t=b[j];
   		b[j]=b[j+1];
   		b[j+1]=t;
   		p=c[j];
   		c[j]=c[j+1];
   		c[j+1]=p;
   	}
   }
   d=0;
    for(i=l-1;i>=1;i--)
  {
  	if(b[i]==b[l])
  	d++;
  	if(b[i]!=b[l])
  	break;
  }
  for(i=c[1]-b[1];i<c[1];i++)
  {
  	printf("%c",a[i]);
  }
  printf("\n");
    for(i=c[l-d]-b[l-d];i<c[l-d];i++)
  {
  	printf("%c",a[i]);
  }
  
}
int main()
{
	char zfc[3000],danci[50][50]={'0'};
	int i,j,k;
	gets(zfc);
	for(i=0,j=0,k=0;zfc[i]!='\0';i++){
		if(zfc[i]==' '){
			zfc[i]='\0';
			strcpy(danci[j],(zfc+k));
			k=i+1;
			j++;
		}
		
	}
	strcpy(danci[j],(zfc+k));
	j++;
	int max=strlen(danci[0]),min=strlen(danci[0]);
	char chang[50],duan[50];
	strcpy(chang,danci[0]);
	strcpy(duan,danci[0]);
	for(i=0;i<j;i++){
		if(strlen(danci[i])>max){
			max=strlen(danci[i]);
			strcpy(chang,danci[i]);
		}if(strlen(danci[i])<min){
			min=strlen(danci[i]);
			strcpy(duan,danci[i]);
		}
	}
	printf("%s\n%s\n",chang,duan);
	return 0;
}
int main()
{
	char s1[100],p[50][100];
	gets(s1);
	strcat(s1," ");
	int len,i,j,n=0,y;
	len=strlen(s1);
	for(i=0;i<len;i++){
		if(s1[i]==' ')
			n++;
	}
	int t=0;
	for(y=0;y<n;y++){
	   for(i=t,j=0;i<len;i++,j++){
		  if(s1[i]!=' '){
			 p[y][j]=s1[i];
		  }
		  else{
			   p[y][j]='\0';
			   t=i+1;
			   break;
		  }
	   }
	}
	int max=0,min=0;
	for(i=0;i<n;i++){
		if(strlen(p[i])>strlen(p[max]))
			max=i;
		if(strlen(p[i])<strlen(p[min]))
			min=i;
	}
	printf("%s\n%s",p[max],p[min]);
	return 0;
}
void main()
{int flag=0,numa,i,j=-1,k=0,n=0;
char a[100],
word[50][30]={'\0'};
gets(a);
numa=strlen(a);
for(i=0;i<numa;i++)
{if(a[i]==' ')
flag=0;
else if(a[i]!=' '&&flag==0)
{j++;
k=0;
word[j][k]=a[i];
k++;
flag=1;
}
else if(a[i]!=' '&&flag==1)
{word[j][k]=a[i];
k++;
}
}

int max=0,min=0;
for(i=1;i<=j;i++)
{if(strlen(word[max])<strlen(word[i]))
max=i;
if(strlen(word[min])>strlen(word[i]))
min=i;
}
puts(word[max]);
puts(word[min]);
}
int main()
{
	char a[10000];
	int i,j,max=0,min=1000,t=0,len,p=1,q=1;
	gets(a);
	len=strlen(a);
	for(i=0;i<=len;i++)
	{   
		if((a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z'))
		{
			t++;
		}
		else if((a[i-1]>='A'&&a[i-1]<='Z')||(a[i-1]>='a'&&a[i-1]<='z'))
		{
			if(t<min)
			{
				p=i-t;
				min=t;
			}
			if(t>max)
			{
				q=i-t;
				max=t;
			}
			t=0;
		}
	}
	for(i=q;i<max+q;i++)
	{
		printf("%c",a[i]);
	}
	printf("\n");
	for(i=p;i<p+min;i++)
	{
		printf("%c",a[i]);
	}
	return 0;
}
int main(){
	int i,j,k,a;
	k=1;
	char X[50][100];
	for(i=0;i<50;i++){
		scanf("%s",X[i]);
	a=getchar();
	if(a=='\n'){
		break;
	}if(a==' '){
		k++;
	}
	}
	
    int Y[50];
	for (i=0;i<k;i++){
		Y[i]=strlen(X[i]);
	}int e;
	char ee[50];
	
for(i=0;i<k;i++){
		for(j=0;j<k-1-i;j++){
            if(Y[j]<Y[j+1]){
				e=Y[j];
				strcpy(ee,X[j]);
				Y[j]=Y[j+1];
				strcpy(X[j],X[j+1]);
				Y[j+1]=e;
				strcpy(X[j+1],ee);
			}
		}
}printf("%s\n",X[0]);for(i=0;i<k;i++){
		for(j=0;j<k-1-i;j++){
            if(Y[j]>Y[j+1]){
				e=Y[j];
				strcpy(ee,X[j]);
				Y[j]=Y[j+1];
				strcpy(X[j],X[j+1]);
				Y[j+1]=e;
				strcpy(X[j+1],ee);
			}
		}
	}
	printf("%s\n",X[0]);
	return 0;
}
int main() {
	char str[1000];
	gets(str);
	int len;
	len=strlen(str);
	int max=0,min=10000;
	int i;
	int lenth=0;
	for(i=0;i<len;i++){
		if (str[i]!=' '){
			lenth=lenth+1;
		}
		if (str[i]==' '){
			if (lenth>max){max=lenth;}
			if (lenth<min){min=lenth;}
			lenth=0;
		}

		if (str[i+1]=='\0'){
			if (lenth>max){max=lenth;}
			if (lenth<min){min=lenth;}
		}

	}

	//printf("%d",max);
	//printf("%d",min);

	lenth=0;
	int maxpostail;
	int minpostail;
	for(i=0;i<len;i++){
		if (str[i]!=' '){
			lenth=lenth+1;
		}
		if (str[i]==' '){
			if (lenth==max){maxpostail=i-1;break;}
			lenth=0;
		}

		if (str[i+1]=='\0'){
			if (lenth==max){maxpostail=i;break;}
		}

	}
	char maxlenword[100];
	for(i=0;i<=max-1;i++){
		maxlenword[i]=str[maxpostail-(max-1)+i];
	}
	maxlenword[max]='\0';
	puts(maxlenword);
lenth=0;

for(i=0;i<len;i++){
		if (str[i]!=' '){
			lenth=lenth+1;
		}
		if (str[i]==' '){
			if (lenth==min){minpostail=i-1;break;}
			lenth=0;
		}

		if (str[i+1]=='\0'){
			if (lenth==min){minpostail=i;break;}
		}

	}
	char minlenword[100];
	for(i=0;i<=min-1;i++){
		minlenword[i]=str[minpostail-(min-1)+i];
	}
	minlenword[min]='\0';
	puts(minlenword);


	return 0;
}
int main()
{
	char s[1000],word[51][30];
	gets(s);
	int a[51];
	int i,j=0,k=0;
	int n=strlen(s);
	for(i=0;i<n;i++)
	{
		if(s[i]==' ')
		{
			s[i]='\0';
			strcpy(word[j],(s+k));
			j++;
			k=i+1;
		}
	}
	strcpy(word[j],(s+k));
	j++;
	for(i=0;i<j;i++)
	{
		a[i]=strlen(word[i]);
	}
	int max=a[0],min=a[0],w=0,e=0;
	for(i=1;i<j;i++)
	{
		if(max<a[i])
		{
			max=a[i];
			w=i;
		}
		if(min>a[i])
		{
			min=a[i];
			e=i;
		}
	}
	printf("%s\n",word[w]);
	printf("%s\n",word[e]);
	return 0;
}
int main()
{
	char b[205][100];
	int i,n,j=0,k=0,s=0,t=0,max,min;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s",b[i]);
	}
	max=strlen(b[0]);
	min=strlen(b[0]);
	for (i=1;i<n;i++)
	{
		if (strlen(b[i])>max)
		{
			max=strlen(b[i]);
			s=i;
		}
		if (strlen(b[i])<min)
		{
			min=strlen(b[i]);
			t=i;
		}
	}
	printf("%s\n%s\n",b[s],b[t]);
	return 0;
}
void main()
{
	char sen[5000],a[200][25]={"0"};
    int i,j,k,m,b[200]={0};
	gets(sen);
	m=strlen(sen);
	k=0;
	for(i=0;i<200;i++)
	{
		for(j=0;k<m;j++)
		{
			  if(sen[k]==' ')
			  {
				  k++;
				  a[i][j]='\0';
				  break;
			  }
			  else if(sen[k]==',')
			  {
				  k=k+2;
				  a[i][j]='\0';
				  break;
			  }
			  else a[i][j]=sen[k];
		  k++;
		}
	}
	for(i=0;a[i][0]!='\0';i++)
	{
	    b[i]=strlen(a[i]);
	}
	for(i=0;b[i+1]!=0;i++)
	{
		if(b[i]>b[i+1]) 
		{
			m=b[i];
			b[i]=b[i+1];
			b[i+1]=m;
		}
	}
	for(j=0;;j++)
	{
		m=strlen(a[j]);
		if(m==b[i])
		{
	     printf("%s\n",a[j]);
		 break;
		}
	}
	for(i=0;b[i+1]!=0;i++)
	{
		if(b[i]<b[i+1])
		{
			m=b[i];
			b[i]=b[i+1];
			b[i+1]=m;
		}
	}
	for(j=0;;j++)
	{
		m=strlen(a[j]);
		if(m==b[i])
		{
	     printf("%s\n",a[j]);
		 break;
		}
	}
}
int main(){
char zf[200];
char sl[200][200];
char z[200];
char a[100];
char max[100];
char min[100];
int i,l,k=0,t=0,m,n=0,len,ci=0;
gets(zf);
l=strlen(zf);
for(i=0;i<l;i++){
   if(zf[i]==' '){

	   n=0;  
       for(m=t;m<i;m++){  
           sl[k][n]=zf[m];
           n++;
	   }
       sl[k][n]='\0';
       t=i+1;     
       k++;         
   
    }        
}
n=0;
 for(m=t;m<l;m++){  
           sl[k][n]=zf[m];
           n++;
	   }
       sl[k][n]='\0';
len=k+1;


strcpy(max,sl[0]);
strcpy(min,sl[0]);

 
    for(k=0;k<len;k++){
        if(strlen(sl[k])>strlen(max)){
           strcpy(max,sl[k]);
		}
		if(strlen(sl[k])<strlen(min)){
           strcpy(min,sl[k]);
		}
}
printf("%s\n",max);
printf("%s\n",min);





return 0;
}
int main()
{
  char input[LEN];
  int max=0,min=0,mxlen=0,mnlen=1000;
  int i=0,j,k=0;
  int word,num;
  fgets(input,LEN,stdin);
  while(input[i]!='\0')
    {
      j=0;
      while(isalpha(input[i]))
	{
	  i++;
	  j++;
	}
      while((!isalpha(input[i]))&&(input[i]!='\0'))
	i++;
      if(j>0)
	{
	  k++;
	  max=(mxlen>=j)? max:k;
	  min=(mnlen<=j)? min:k;
	  mxlen=(mxlen>=j)? mxlen:j;
	  mnlen=(mnlen<=j)? mnlen:j;
	}
    }
  word=0;
  num=0;
  for(i=0;input[i]!='\0';i++)
    {
      if(!isalpha(input[i]))
	 word=0;
      else if(word==0)
	{
	  word=1;
	  num++;
	}
      if(num==max)
	break;
    }
  for(j=0;j<mxlen;j++)
    printf("%c",input[i+j]);
  printf("\n");
  word=0;
  num=0;
  for(i=0;input[i]!='\0';i++)
    {
      if(!isalpha(input[i]))
	 word=0;
      else if(word==0)
	{
	  word=1;
	  num++;
	}
      if(num==min)
	break;
    }
  for(j=0;j<mnlen;j++)
    printf("%c",input[i+j]);
  printf("\n");
  return 0;
}
int main()
{
	char cc[500]={'\0'},c[30][20]={'\0'};
	int a,b,d,e=0,f=0,g[50];
	gets(cc);
	for (a=0;a<500;a++)
	{
		if (cc[a]==' '&&cc[a+1]=='\0')
		{
			cc[a]='\0';
		}
	}
	for (a=0;a<500;a++)
	{
		if (cc[a]==' ')
		{
			e++;
			f=0;
		}
		else
		{
			c[e][f]=cc[a];
			f++;
		}
	}
	for (b=0;b<=e;b++)
	{
		g[b]=strlen(c[b]);
	}
	for (a=0;a<=e;a++)
	{
		f=0;
		for (b=0;b<=e;b++)
		{
			if (g[a]>=g[b])
			{
				f++;
			}
			
		}
		if (f>e)
		{
			printf("%s\n",c[a]);
			break;
		}
	}
	for (a=0;a<=e;a++)
	{
		f=0;
		for (b=0;b<=e;b++)
		{
			if (g[a]<=g[b])
			{
				f++;
			}
			
		}
		if (f>e)
		{
			printf("%s\n",c[a]);
			break;
		}
	}
}
void main ()
{
int i,n,b[50],m,t,p,q;
char s[50][30],c=0;
for (n=0;c!='\n';n++) 
 scanf ("%s%c",&s[n],&c);    
for(i=0;i<n;i++)
 b[i]=strlen(s[i]);
m=t=b[0];
p=q=0;
for (i=1;i<n;i++)
{
 if(b[i]>m)
  {
   m=b[i];
   p=i;
   }
 if(b[i]<t)
  {
   t=b[i];
   q=i;
   }
}
printf ("%s\n%s\n",s[p],s[q]);
}
void main()
{
    int i,j,k,flu,max_len=0,min_len=100,max_num,min_num;
    char ch[20000],str[200][100];
    gets(ch);
    for(i=j=k=flu=0;i<strlen(ch);i++)
        if(ch[i]!=' '&&ch[i]!=',') 
        {
            flu=1;
            str[k][j++]=ch[i];
        }
        else if(flu==1)
        {
            str[k++][j]='\0';
            j=flu=0;
        }
    if(flu==1)
        str[k++][j]='\0';
    for(i=0;i<k;i++)
    {
        if(max_len<strlen(str[i]))
        {
            max_len=strlen(str[i]);
            max_num=i;
        }
        if(min_len>strlen(str[i]))
        {
            min_len=strlen(str[i]);
            min_num=i;
        }
    }
    printf("%s\n",str[max_num]);
    printf("%s\n",str[min_num]);
}
int main(){
int len[50];
int mark=0,a=0,b,B=0,i,n,minIndex,maxIndex;
char s[999];
char zfc[50][50];
gets(s);

for(a=0;a<50;a++){
	for(b=B,i=0;b<999,i<50;b++,i++){
		if((s[b]!=' ')&&(s[b]!='\0')){
		zfc[a][i]=s[b];
		}
		else if((s[b]==' ')&&(s[b]!='\0')){
		mark++;
		B=b+1;
		break;
		}
		else if(s[b]=='\0'){
			mark++;
			break;
		}

		zfc[a][i+1]='\0';
	}
		if(s[b]=='\0'){
			break;}
	
//printf("zfc a %s\n",zfc[a]);
}

for(n=0;n<mark;n++){
                len[n]=strlen(zfc[n]);
}

maxIndex=0;
minIndex=0;
for(n=1;n<mark;n++){
             	if(len[n]>len[maxIndex]){
	               maxIndex=n;
				}
                else if(len[n]<len[minIndex]){
	                    minIndex=n;
				}
}
printf("%s\n%s\n",zfc[maxIndex],zfc[minIndex]);

return 0;
}
int main()
{
	char u[50][100];
	char buf[5000];

	int i=0,j,k,a[50],c=0,d=100, n, ret ;
    int index;
	int max, min;

	gets(buf);
	j = 0;
	
	int len = strlen(buf);
	//printf("  ---  buf=%d\n", strlen(buf));

	buf[strlen(buf)] = ' ';
	buf[strlen(buf)+1] = '\0';
	
	for (i = 0; i < len; i++) {
		index = 0;
		while (buf[i]!=' ') {
			u[j][index] = buf[i];
			index++;
			i++;
		}
		u[j][index] = '\0';
		a[j] = strlen(u[j]);
		//printf("%s, %d, %d\n", u[j], a[j], j);
		j++;
		//printf("i = %d\n", i);
	}
    //printf("-----\n");
	n = j;
    for(i=0;i<n;i++)
	{
		if(a[i]>c) {
			c = a[i];
			max = i;
		}
	}
	for(j=0;j<n;j++)
	{
		if(a[j]<d) 
		{
			d = a[j];
			min = j;
		}

	}
	//printf("%d, %d\n", max, min);

    printf("%s\n",u[max]);
	printf("%s",u[min]);

    return 0;
}
void main()
{
	int i;
	char a[20],b[20],c[20],d;
	scanf("%s",&a);
	strcpy(b,a);
	strcpy(c,a);
	for(i=1;i<=100;i++)
	{
		d=getchar();
		if(d=='\n')
			break;
		else
			scanf("%s",&a);
			if(strlen(a)>strlen(b))
				strcpy(b,a);
			if(strlen(a)<strlen(c))
				strcpy(c,a);
	}
	printf("%s\n%s\n",b,c);
}
int main()
{
	int i=0,j,k,max=0,min=40,a[50],p,q;
	char s[50][40];
	char (*str)[40]=s;
	int *n=a;
	while (!feof(stdin)) scanf("%s", *(str+(i++)));
	j=i-2;
	for(;j>=0;j--)*(n+j)=strlen(s[j]);
	for(j=0;j<=i-2;++j)
	{
		if(max<*(n+j))
		{
			max=*(n+j);
			p=j;
		}
		if(min>*(n+j))
		{
			min=*(n+j);
			q=j;
		}
	}
	printf("%s\n",*(str+p));
	printf("%s",*(str+q));
}
int main()
{
	int min = INT_MAX;
	int max = 0;
	char str[100000] = {0};
	cin.getline(str,100000);
	
	char* minstart;
	char* minend;
	char* maxstart;
	char* maxend;
	int temp = 0;;
	char* p = str;
	for (;*p; p++)
	{
		if ((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z'))
			temp ++;
		else
		{
			if (temp > 0)
			{
				if (temp < min)
				{
					minstart = p - temp;
					minend = p - 1;
					min = temp;
				}
				if (temp > max)
				{
					maxstart = p - temp;
					maxend = p - 1;
					max = temp;
				}
				temp = 0;
			}
		}
	}
	if (temp > 0)
	{
		if (temp < min)
		{
			minstart = p - temp;
			minend = p - 1;
			min = temp;
		}
		if (temp > max)
		{
			maxstart = p - temp;
			maxend = p - 1;
			max = temp;
		}
	}
	for (;maxstart <= maxend; maxstart++)
		cout << *maxstart;
	cout << endl;
	for (;minstart <= minend; minstart++)
		cout << *minstart;
}
int main()
{
	char a[50][30];
	int k=0, i=0;

	//for(i=0;i<50;i++)
	//{
	//	
	//	if(scanf("%s", &a[i]) <= 0 || strlen(a[i]) == 0)     
	//	{
	//		break;
	//	}
	//	k++;
	//}	

	while(scanf("%s",&a[i])>0 && strlen(a[i])>0)
	{
		k++;
		i++;
	}
	int size[50];
	for(i=0;i<k;i++)
	{
		size[i]=strlen(a[i]);
	}
	int min=30;
	int max=0;
	int imin, imax;
	for(i=0;i<k;i++)
	{
		if(size[i]<min)
		{
			min=size[i];
			imin = i;
		}
		if(size[i]>max)
		{
			max=size[i];
			imax = i;
		}
	}
	/*
	????????max?min???????,????????
	*/
	printf("%s\n", a[imax]);
	printf("%s\n", a[imin]);
	return 0;
}
int main() 
{
  char s[60][60],c,d[60];
  int a[60],i,j,k,t;
  
  for(i=0;;i++){
  scanf("%s",s[i]);
	  a[i]=strlen(s[i]);
	  scanf("%c",&c);
	  if(c=='\n')
		  break;
  }
  
  j=i;
    for(i=j;i>0;i--){
		for(k=0;k<i;k++){
			if(a[k]>a[k+1]){
               strcpy(d,s[k]);
          strcpy(s[k],s[k+1]);
          strcpy(s[k+1],d);
		  t=a[k];
		  a[k]=a[k+1];
          a[k+1]=t;
			}
		}
	}
      printf("%s\n%s",s[j],s[0]);
	  
 

return 0;
}
int main(){
	char a[1000];
	int mar[100];
	int n,i,t,k,max1,max,min1,min;
	gets(a);
	n=strlen(a);
	i=0;t=0;max=0;min=65535;
	while (i<n){
		if ((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')){
		t++;
		mar[t]=i;k=0;
		while ((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')) {i++;k++;}
		if (max<k) {max=k;max1=t;}
		if (min>k) {min=k;min1=t;}
		}
		i++;
	}
	for (i=mar[max1];i<mar[max1]+max;i++) printf("%c",a[i]);printf("\n");
	for (i=mar[min1];i<mar[min1]+min;i++) printf("%c",a[i]);printf("\n");
    return 0;
}
int main(int argc, char *argv[])
{
    char s[500],words[50][500];
    int  n,k,i,len[50],max=0,min=100000,da=0,xiao=0;
    gets(s);
    
     // ?s???????????words?
    n = 0; k = 0;
    for (i = 0; s[i]!=0; i++) {
        if (s[i] == ' ') {
            s[i] = '\0';
            strcpy(words[n], (s + k));
            n++;
            k = i + 1;
        }
    }
    strcpy(words[n], (s + k));
    n++;

    
    
    for(i=0;i<n;i++){
                     len[i]=strlen(words[i]);
                     if(len[i]>max){
                                    da=i;
                                    max=len[i];
                                    }
                                    }
                                    
    for(i=0;i<n;i++){
                     len[i]=strlen(words[i]);
                     if(len[i]<min){
                                    xiao=i;
                                    min=len[i];
                                    }
                                    }
                                    
    printf("%s\n",words[da]);
    printf("%s\n",words[xiao]);
    
  
  
  return 0;
}
int main(){
	char s[1000],word[100][20];
	gets(s);
	int l,i,k=0,n=0;
	l=strlen(s);
	for(i=0;i<l;i++){
		if(s[i]==' '){
			s[i]='\0';
			strcpy(word[n],s+k);
			n++;
			k=i+1;
		}
	}
	strcpy(word[n],s+k);
	int max=0,min=0;
	for(i=0;i<=n;i++){
		if(strlen(word[max])<strlen(word[i])) max=i;
		if(strlen(word[min])>strlen(word[i])) min=i;
	}
    puts(word[max]);
	puts(word[min]);
	return 0;
}
int main(){
int i,n,m=0,k=0,p=1,sl[500],max=0,min,a=0,b=0;
char s[500],f[200][50];
gets(s);
n=strlen(s);
for(i=0;i<n;i++){
	if((s[i]!=' ')&&(s[i]!=',')){
	f[m][k]=s[i];
	k++;
	}else if(((s[i]==' ')||(s[i]==','))&&((s[i-1]!=' ')&&(s[i-1]!=','))){
	f[m][k]='\0';
	m++;
	k=0;
	p++;
	}else{
	m=m;
	k=0;
	p=p;
	}
	f[m][k]='\0';
	
}
for(i=0;i<p;i++){
sl[i]=strlen(f[i]);
}
for(i=0;i<p;i++){
	if(max<sl[i]){
	max=sl[i];
	a=i;
	}else{
	max=max;
	a=a;
	}
	
}
min=max;
for(i=0;i<p;i++){
	if(min>sl[i]){
	min=sl[i];
	b=i;
	}else{
	min=min;
	b=b;
	}
}
printf("%s\n" ,f[a]);
printf("%s" ,f[b]);
return 0;
}