semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{
	char a[5000]={""},b[200][20]={0};
	int i,j,n,k,l,m,s,max,min,num[200]={0};
    scanf("%d\n",&m);
	gets(a);

	for(k=0,i=0,j=0;*(a+k)!=0;k++)
		if(*(a+k)==' '||*(a+k)==',')
		{
			*(num+i)=j;
			i++;
			j=0;
		}
		else 
		{
			*(*(b+i)+j)=*(a+k);
			j++;
		}
	
		*(num+i)=j;
		n=i;
	    l=s=0;
		max=min=*(num+0);
	
	for(i=1;i<=n;i++)
		if(*(num+i)>max)
		{
			max=*(num+i);
			l=i;
		}
		else if(*(num+i)<min&&*(num+i)>0)
		{
			min=*(num+i);
			s=i;
		}
	
	puts(*(b+l));
	puts(*(b+s));

}
int main()
{
	char word[2000];
	int length[200] = {0}, location[200], leap = 0, i, j = 0, max = 0, min = 2000, location1, location2;
	cin.getline(word, 2000);
	for (i = 0; i < 200; i++)
		location[i] = -1;
	i = 0;
	while (word[i] != '\0')
	{
		if ((word[i] == ' '|| word[i] == ',') && leap)
		{
			leap = 0;
			j++;
		}
		else if (word[i] != ' ' && word[i] != ',' && !leap)
		{
			leap = 1;
			location[j] = i;
			length[j]++;
		}
		else if (word[i] != ' ' && word[i] != ',' && leap)
			length[j]++;
		i++;
	}
	for (i = 0; i < 200; i++)
		if (length[i] > 0 && location[i] > -1)
		{
			if (length[i] > max)
			{
				max = length[i];
				location1 = i;
			}
			if (length[i] < min)
			{
				min = length[i];
				location2 = i;
			}
		}
	for (i = location[location1]; i < location[location1] + length[location1]; i++)
		cout << word[i];
	cout << endl;
	for (i = location[location2]; i < location[location2] + length[location2]; i++)
		cout << word[i];
	return 0;
}
void main()
{
	char *a,*p,*max,*min;
	int i,j,k,m,n,t,ma=0,mi=10000;
	a=(char *)malloc(1000*sizeof(char));
	p=(char *)malloc(1000*sizeof(char));
	max=(char *)malloc(1000*sizeof(char));
	min=(char *)malloc(1000*sizeof(char));
	gets(a);
	n=strlen(a);
	p=a;
	for(;;a++)
	{
		if(*a==' '||*a=='\0')
		{
			
			m=a-p;
			if(m>ma)
			{
				ma=m;
				max=p;
			}
			if(m<mi)
			{
				mi=m;
				min=p;
			}
			if(*a=='\0')break;
			p=a+1;
		}
	}
	for(i=0;*(max+i)!=' '&&*(max+i);i++)
		printf("%c",*(max+i));
	printf("\n");
	for(i=0;*(min+i)!=' '&&*(min+i);i++)
		printf("%c",*(min+i));
	printf("\n");



	
}
int main(){
char a[50][50]={'0'};
char b;
int max=0,min=0,i;
for(i=0;;i++){
scanf("%s",a[i]);
scanf("%c",&b);
if(b==10)
break;
}
for(i=0;i<50;i++){
if(strlen(a[i])>strlen(a[max]))
max=i;
if(strlen(a[i])<strlen(a[min])&&strlen(a[i])!=0)
min=i;
}
printf("%s\n%s",a[max],a[min]);
return 0;
}
void main()
{
	char string[1000]={0};
	char str[100][100]={0};
	char *p;
	char num[100]={0};
p=num;
int i,j,k,n,m;
gets(string);
n=0;k=0;
for(i=0;string[n]!='\0';i++)
{ for(j=0;string[n]!='\0'&&string[n]!=' ';j++)
   {
   str[i][j]=string[n];
   n++;
   }
  str[i][j]='\0';
  n++;
k++;}

m=strlen(str[0]);
p=str[0];
for(i=0;i<k;i++)
  if(m<strlen(str[i]))
  {m=strlen(str[i]);
  p=str[i];}

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

m=strlen(str[0]);
p=str[0];
for(i=0;i<k;i++)
  if(m>strlen(str[i]))
  {m=strlen(str[i]);
  p=str[i];}

printf("%s",p);
}
//#include<math.h>
/*int  a[100][100],i,n,j;
int f(int i,int j)
{
	if(i==n-1&&j==n-1) return 1;
	else {

*/



void main()
{

	char a[200]={"\0"};
	int b[100]={0},c[100]={0},
		n=0,r=0,d[100]={0},
		i=0,j=0,k=0,max=0,min=180,a1=90,s=0,a2=90,t=0;
  
	gets(a);
  
	t=strlen(a);//????????

  for(i=0;i<t;i++)
  {
	  if(a[i]>='A'&&a[i]<='z'||a[i]>='0'&&a[i]<='9')
          b[j]++;//??????????
	  else if(a[i]!='.') j++;//????????
	  
  }

j++;


  for(k=0;k<j;k++)
  
	  if(b[k]>max)
	  {
		  max=b[k];
	  }
   for(t=0;t<j;t++)
	   if(b[t]==max) 
	   {
		   a1=t;break;
		   //??????????
	   }
	 for(k=0;k<j;k++)
	   if(b[k]<min) 
	  {
		  min=b[k];
	  }
	for(t=0;t<j;t++)
	   if(b[t]==min) 
	   {
		   a2=t;break;
		  
	   }  //???????????
	  


	
	for(t=0;t<a1;t++)
		s+=b[t]+1;
//	printf("%d %d %d",max,b[a1],s);
	for(t=s;t<s+b[a1];t++)
		printf("%c",a[t]);
          printf("\n");//break;



s=0;
	for(t=0;t<a2;t++)
		s+=b[t]+1;
//	printf("%d %d %d ",min,b[a2],s);

		for(t=s;t<s+b[a2];t++)
	printf("%c",a[t]);
	printf("\n");
	//break;



  }
int main()
{
	char zfc[1000];
	gets(zfc);
	int k=strlen(zfc);
	int i;
	int count=0;
	int p;
	int min1=0,min=1000,max=0,max1=0;
	for (i=0;i<k;i++)
	{
		if (zfc[i]!=32)
		{
			count=count+1;
		}
		else
		{
			if (max<count)
			{
				max=count;
				max1=i-1;
			}
			if (min>count)
			{
				min=count;
				min1=i-1;
			}
			count=0;
			p=i;
		}
		
			



	}
	count=k-1-p;
	if (max<count)
	{
				max=count;
				max1=i-1;
	}
			if (min>count)
	{
				min=count;
				min1=i-1;
	}

	for (i=max1-max+1;i<=max1;i++)
	{
		printf("%c",zfc[i]);
	}
	printf("\n");
	for (i=min1-min+1;i<=min1;i++)
	{
		printf("%c",zfc[i]);
	}
	return 0;
}
char minword[50]="\0";
char maxword[50]="\0";

void clear(int i)
{
	int j = 0;
	for ( j= 0; j < 50; j++) {
		if (i==0) {
			minword[j] = 0;
		} else {
			maxword[j] = 0;
		}
	}
}

int main()
{  char a[1001];
   char str[51];
   
   int max = 0, min = 100;
   int i,len=0,n;
   gets(a);
   n=strlen(a);
   a[n] = ' ';
   a[n+1] = '\0';
 
   for(i=0;i<n+1;i++)
   {     
	     str[len]=a[i];
		 len++;
         if(a[i]==' '){
			 str[len-1]='\0';
		     len=0;
			 //printf("%s\n", str);
		 }
		 
		 if(strlen(str)<min && !len)
		 {
			 min = strlen(str);
			 clear(0);
             strcpy(minword, str);
			 //printf("min=%d, %s\n",min, minword);
		 }
		 if(strlen(str)>max && !len)
		 {    
			 max = strlen(str);
			 clear(1);
			 strcpy(maxword,str);
			 //printf("max=%d, %s\n",max, maxword);
		 }
   }
    printf("%s\n%s",maxword,minword);

	return 0;
}
main()
{
char sen[2000],word[300][20];
int n,j,i,t,len,max,min,p,q;
gets(sen);
len=strlen(sen);
n=1;
j=0;
for (i=0;i<=len-1;i++)
 { if (sen[i]!=' '&&sen[i]!=',') {word[n][j]=sen[i];
 	                              j++;}
   if (sen[i]==' ') {n++;j=0;}
   if (sen[i]==',') {i++;n++;j=0;}
 }
max=0;min=10000;
for (i=1;i<=n;i++)
 {  
 	if (max<strlen(word[i])) {max=strlen(word[i]);p=i;}
    if (min>strlen(word[i])) {min=strlen(word[i]);q=i;}
 }
printf("%s\n",word[p]);
printf("%s",word[q]);
 }
int main()
{
	char a[300],*p=a;
	int i,j,n,b[50]={-1},sum[50]={0},r=0,s=100,m=0,k,t;
	gets(a);
	n=strlen(a);
	for(i=0;i<n;i++)
	
	{
        if(*(p+i)==' ')
			{
				m++;
				*(b+m)=i;
				}
	}
	
	*(b+m+1)=n;
	for(j=0;j<=(m+1);j++)
	{
		*(sum+j)=*(b+j+1)-*(b+j);
	}
	for(j=0;j<(m+1);j++)
	{		
	if(r<*(sum+j))
			{
				r=*(sum+j);
				k=j;
		}
		if(s>*(sum+j))
			{
				s=*(sum+j);
				t=j;
				
		}
	}
	  
		for(i=*(b+k)+1;i<*(b+k+1);i++)
			printf("%c",*(p+i));
			printf("\n");
		for(i=*(b+t)+1;i<*(b+t+1);i++)	
	    printf("%c",*(p+i));
		return 0;
	}
int main()
{
	char a[3000];
	int i=0,j=0,c=0,d=10,m,n;
	gets(a);
	while(a[i]!='\0')
	{
		while(a[i]!=' '&&a[i]!='\0')
		{
		  j++;
		  i++;
		}
		if(j>c)
		{
			m=i-j;
			c=j;
		}
		if(j<d)
		{
			n=i-j;
			d=j;
		}
		while(a[i]==' ')
		{
			i++;
			j=0;
		}
	}
	while(a[m]!=' '&&a[m]!='\0')
	{
		printf("%c",a[m]);
		m++;
	}
	printf("\n");
	while(a[n]!=' '&&a[n]!='\0')
	{
		printf("%c",a[n]);
		n++;
	}
	printf("\n");
	return 0;
}
int main()
{
	int d=0,i=0,num=0,max,imax=0,min,imin=0;
	char a[200][30],c;
	while((c=getchar())!='\n')
	{
		if(d==1&&c!=' '&&c!=',')
			a[i][num++]=c;
		if(d==0&&c!=' '&&c!=',')
		{
			d=1;
			a[i][num++]=c;
		}
		if(d==1&&(c==' '||c==','))
		{
			d=0;
			a[i][num]='\0';
			if(i==0)
			{
				max=num;
				min=num;
			}
			if(num>max)
			{
				max=num;
				imax=i;
			}
			if(num<min)
			{
				min=num;
				imin=i;
			}
			num=0;
			i++;
		}
	}
	if(d==1)
	{
		a[i][num]='\0';
		if(num>max)
		{
			max=num;
			imax=i;
		}
		if(num<min)
		{
			min=num;
			imin=i;
		}
	}
	puts(a[imax]);
	puts(a[imin]);
	return 0;
}
void main()
{
	struct p
	{
		int n,l;
	}
	ps[200],r1,r2;
	char s[10000];
	int m,k,i,j;
	gets(s);
	m=strlen(s);
	j=0;ps[0].n=0;ps[0].l=0;
	for(i=0;i<m;i++)
	{
		if(s[i]!=' ')   ps[j].l=ps[j].l+1;
		if(s[i]==' ')
		{
			j=j+1;
			ps[j].n=i+1;
			ps[j].l=0;
		}
	}
	r1=ps[0];r2=ps[0];
		for(i=1;i<=j;i++)
		{
			if(ps[i].l>r1.l)   r1=ps[i];
			if(ps[i].l<r2.l)  r2=ps[i];
		}
	
	
	for(i=r1.n;i<=r1.n+r1.l-1;i++) printf("%c",s[i]);
	printf("\n");
	for(i=r2.n;i<=r2.n+r2.l-1;i++) printf("%c",s[i]);
}
void main()
 {
   char a[50][100],max[100],min[100];
int i,n;
   for(i=0;i<50;i++)
   {
     scanf("%s",a[i]);
     }
   n=i;strcpy(max,a[0]);strcpy(min,a[0]);
   for(i=0;i<n;i++)
{if(strlen(a[i])==0)break;
    if(strlen(max)<strlen(a[i]))strcpy(max,a[i]);
   if(strlen(min)>strlen(a[i]))strcpy(min,a[i]);
}
  printf("%s\n%s\n",max,min);
}
int main()
{int i,j,b[200],max=0,min=100,I,J,n;
char a[200][200];

 scanf("%d",&n);
for (i=0;i<n;i++)
{
 scanf("%s",a[i]);
}
	
for (i=0;i<n;i++)
{
b[i]=strlen(a[i]);
}


for (i=0;i<n;i++)
{
if (max<b[i])
{max=b[i];I=i;}
if(min>b[i])
{min=b[i];J=i;}
}

printf("%s\n",a[I]);
printf("%s",a[J]);
return 0;
}
// ??????.cpp : ??????????????
//


int main()
{
	char a[200][100];
	int i,j,k,l[200],m;
	for(i=0;i<=199;++i)
	{
		for(j=0;j<=99;++j)
		{
			scanf("%c",&a[i][j]);
		    if(a[i][j]==' ')
		    {
			    a[i][j]='\0';
				break;
			}
			if(a[i][j]=='\n') break;
		}
		l[i]=j;
		if(a[i][j]=='\n')
		{
			a[i][j]='\0';
			break;
		}
	}
	m=0;
	for(k=0;k<=i;++k)
	{
		if(m<l[k]) m=l[k];
	}
	for(k=0;k<=i;++k)
	{
		if(m==l[k]) break;
	}
	printf("%s\n",a[k]);
	m=9999;
	for(k=0;k<=i;++k)
	{
		if(m>l[k]) m=l[k];
	}
	for(k=0;k<=i;++k)
	{
		if(m==l[k]) break;
	}
	printf("%s\n",a[k]);
	return 0;
}
int main()
{
	int n,i,max,min;
	char s[200][50];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s",s[i]);
	}
	max=strlen(s[0]);
	min=strlen(s[0]);
	for(i=0;i<n;i++)
	{
		if(strlen(s[i])>max)
			max=strlen(s[i]);
		if(strlen(s[i])<min)
			min=strlen(s[i]);
	}
	for(i=0;i<n;i++)
	{
		if(strlen(s[i])==max)
		{
			printf("%s\n",s[i]);
			break;
		}
	}
	for(i=0;i<n;i++)
	{
		if(strlen(s[i])==min)
		{
			printf("%s",s[i]);
			break;
		}
	}
	return 0;
}
int main()
{
	int n,i,l[210];
	char a[210][30];
	scanf("%d",&n);
	for(i=0;i<n;i++)   scanf("%s",a[i]);
    for(i=0;i<n;i++)   l[i]=strlen(a[i]);

	

	int p1,p2;
	p1=l[0];
	for(i=0;i<n;i++)
	{
	      if(l[i]>=p1)  p1=l[i];
	}
	p2=p1;
	for(i=0;i<n;i++)
		if(l[i]<=p2)   p2=l[i];
	

	
	for(i=0;i<n;i++)
	{
	    if(l[i]==p1)
		{
		     printf("%s\n",a[i]);
			 break;
		}
	}
    for(i=0;i<n;i++)
	{
	    if(l[i]==p2)
		{
		     printf("%s",a[i]);
			 break;
		}
	}
	return 0;
}
int main()
{
    int min=0,max=0,minpl=0,maxpl=0,k;
    char a[2000]={0};
    gets(a);
    int l=strlen(a),i=0,j;
    for(j=0;a[i+j]!=' '&&a[i+j]!=','&&a[i+j]!=0;j++);
    max=min=j;

    for(i=j+1;i<l;i+=j+1)
    {
        for(j=0;i+j<l;j++)
            if(a[i+j]==' '||a[i+j]==','||a[i+j]==0)break;

        if(j>max){max=j;maxpl=i;}
        if(j<min&&j!=0){min=j;minpl=i;}
    }
    for(k=0;k<max;k++)putchar(a[maxpl+k]);

    printf("\n");
    for(k=0;k<min;k++)putchar(a[minpl+k]);

    printf("\n");

}
int main()
{
	char str[999];
	char word[200][128]={"\0"};
	int a[200]={0};
	int i=0,j=0,k;
	int x;
	int MAX=0,MIN=0;
	gets(str);
	for(k=0;str[k]!='\0';k++)
	{
		if(str[k]==' '||str[k]==',')
		{
			i=i+1;
			j=0;
		}
		else
		{
			word[i][j]=str[k];
			j++;
		}
	}
	x=i;
	for(i=0;i<x+1;i++)
	{
		for(j=0;word[i][j]!='\0';j++)
			a[i]=a[i]+1;
	}
	for(i=0;i<x;i++)
	{
		if(a[MAX]<a[i+1])
			MAX=i+1;
	}
	for(i=0;a[i]==0;i++)
		MIN=i+1;
	for(i=0;i<x;i++)
		if(a[i+1]!=0)
		{
			if(a[MIN]>a[i+1])
				MIN=i+1;
		}
	puts(word[MAX]);
	printf("\n");
	puts(word[MIN]);
	return 0;
}
int main()
{
	char str[6000],a[200][30],max[30],min[30];
	int i,j=0,k=0;
	gets(str);
	for(i=0;str[i]!=0;i++)
	{
		if(str[i]==' '||str[i]==',')
		{
			a[j][k]=0;
			j++;
			k=0;
		}
		else
		{
			a[j][k]=str[i];
			k++;
		}
	}
	a[j][k]=0;
	strcpy(max,a[0]);
	for(i=1;i<j+1;i++)
	{
		if(strlen(a[i])>strlen(max))
			strcpy(max,a[i]);
	}
	strcpy(min,a[0]);
	for(i=1;i<j+1;i++)
	{
		if(strlen(a[i])<strlen(min)&&strlen(a[i])>=1)
			strcpy(min,a[i]);
	}
	printf("%s\n%s\n",max,min);
	return 0;
}
int main(){
	char a[50][50]={'0'},b;
	int i,max=0,min=0;
	for(i=0;i<50;i++){
		scanf("%s",a[i]);
		scanf("%c",&b);
		if(b==10){
			break;
		}
	}
	for(i=0;i<50;i++){
		if(strlen(a[i])>strlen(a[max])){
			max=i;
		}
		else if(strlen(a[i])<strlen(a[min])&&strlen(a[i])!=0){
			min=i;
		}
	}
	printf("%s\n%s",a[max],a[min]);
	return 0;
}
int main(){
	char max[50],min[50],a[50];
	int n,i;
	scanf("%d",&n);
	scanf("%s",max);
	strcpy(min,max);
	for(i=2;i<=n;i++){
		scanf("%s",a);
		if(strlen(a)>strlen(max)) strcpy(max,a);
		if(strlen(a)<strlen(min)) strcpy(min,a);
	}
	printf("%s\n",max);
	printf("%s\n",min);
	return 0;
}
int main()
{
	int n,i,m,max=0,p1,min=70,p2;
	char a[203][40];
	scanf("%d\n",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%s",*(a+i));
	}
    for(i=1;i<=n;i++)
	{
		m=strlen(*(a+i));
		if(m>max)
		{
			max=m;
			p1=i;
		}
		if(m<min)
		{
			min=m;
			p2=i;
		}
	}
    printf("%s\n%s",*(a+p1),*(a+p2));
	return 0;
}
int main()
{
    char c[5000],temp[20]={'\0'},min[20],max[20];
    int i,j,flag=0;
    gets(c);
    for(i=0;i<=20;i++)
        {
        if(c[i]==' '||c[i]==','||c[i]=='\0')
        {min[i]='\0';max[i]='\0';break;}
        min[i]=c[i];
        max[i]=c[i];
        }
    i++;
    if(c[i-1]!='\0')for(;i<=5000;i++)
        {
        for(j=0;j<=500;j++)
        {
        if(j==0&&(c[i+j]==' '||c[i+j]==','||c[i+j]=='\0'))
        continue;
        if(c[i+j]==' '||c[i+j]==','||c[i+j]=='\0')
        {
        temp[j]='\0';
        if (strlen(temp)>strlen(max))
            strcpy(max,temp);
        else if(strlen(temp)<strlen(min))
            strcpy(min,temp);
        if(c[i+j]=='\0')
        flag=1;
        i=i+j;
        break;
        }
        else temp[j]=c[i+j];
        }
        if(flag==1)
        break;
        }

        printf("%s\n",max);
        printf("%s",min);
    return 0;
}
int n=0,i,num[100]={0},t=0,max=0,min=50,begin=0,lon1=0,lon2,sho1=0,sho2;
char s[100],*p;

int main(){
    gets(s);
    p=s;
    while(*p!='\0'){
        if(*p!=' '){
            num[t]++;
        }
        else{
             
            if(num[t]>max){
                max=num[t];
                lon1=begin;
                lon2=n-1;
            }
            if(num[t]<min){
                min=num[t];
                sho1=begin;
                sho2=n-1;
            }
            begin=n+1;
            t++;
        }
        n++;
        p++;
    }
    if(*p=='\0'){
        if(num[t]>max){
                max=num[t];
                lon1=begin;
                lon2=n-1;
            }
            if(num[t]<min){
                min=num[t];
                sho1=begin;
                sho2=n-1;
            }
    }
    
    for(i=lon1;i<lon2;i++)
        printf("%c",s[i]);
    printf("%c\n",s[lon2]);
    for(i=sho1;i<sho2;i++)
        printf("%c",s[i]);
    printf("%c\n",s[sho2]);
scanf("%d",&n);
return 0;
}
int main(){
	char a[50][50]={0};
int b[50],sb,lb,h=0,k=0;
int n,i=0;
while(1)
{
	scanf("%s",a[i]);
	b[i]=strlen(a[i]);
//	printf("%d ",b[i]);//
	if(getchar()=='\n')
	{
		break;
	}
	else
	{
		i++;
		n=i;
	}
}
sb=b[0];
lb=b[0];
for(i=0;i<=n;i++)
{
	if(lb<b[i])
	{
		lb=b[i];
		h=i;
	}
	if(sb>b[i])
	{
		sb=b[i];
		k=i;
	}
}
printf("%s",a[h]);
printf("\n%s",a[k]);
return 0;
}
int main()
{
	char word[20000];
	int longlen = 0, shortlen = 201, t = 0, i = 0, j[2], k = 0;
	cin.getline(word, 20000);
	while (word[i] != '\0')
	{
		while (word[i] != ' ' && word[i] != ',' && word[i] != '\0')
		{
			t ++;
			i ++;
		}
		if (t > longlen)
		{
			longlen = t;
			j[0] = i;
		}
		if (t < shortlen)
		{
			shortlen = t;
			j[1] = i;
		}
		while (word[i] == ' ' || word[i] == ',')
		{
			i ++;
			t = 0;
		}	
	}
	for (i = j[0] - longlen; ; i ++)
	{
		if (word[i] == ' ' || word[i] == ',' || word[i] == '\0')
		{
			break;
		}
		cout << word[i];
	}
	cout << endl;
	for (i = j[1] - shortlen;; i ++)
	{
		if (word[i] == ' ' || word[i] == ',' || word[i] == '\0')
		{
			break;
		}
		cout << word[i];
	}
	cout << endl;
	return 0;
}
int main()
{
	char s[20000];
	char words[200][401];
	int s1=0,s2=0;
	gets(s);
	int n=0,k=0;
	for(int 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++;
	int max=strlen(words[0]),min=strlen(words[0]);
	for(int j=1;j<n;j++)
	{
		int a=strlen(words[j]);
		if(a>max)
		{
			max=a;
			s1=j;
		}
		if(a<min)
		{
			min=a;
			s2=j;
		}
	}
	puts(words[s1]);
	puts(words[s2]);
	return 0;
}
int main()
{
	int n,i;
	int max,min,p,q;
	int len[200]={0};
	char word[200][20];
	scanf("%d", &n);
	getchar();
	for(i=0;i<n;i++)
	{
		scanf("%s",word[i]);
	}
    for(i=0;i<n;i++)
	{
		len[i]=strlen(word[i]);
	}
	max=len[0];p=0;
	min=len[0];q=0;
	for(i=0;i<n;i++)
	{
		if(len[i]>max)
		{
			max=len[i];
			p=i;
		}
		if(len[i]<min)
		{
             min=len[i];
			 q=i;
		}
	}
	printf("%s\n",word[p]);
	printf("%s\n",word[q]);
	return 0;
}
int main(int argc, char* argv[])



{
	int n,p,i,j,l,large,small;
	char a[50],max[50],min[50];
	large=0;
	small=50;
	scanf("%d",&n);

	{
			scanf("%s",&a);
			l=strlen(a);
			small=l;
			large=l;

				for(i=0;i<=l;i++)
				{
					min[i]=a[i];
					
				}
				for(i=0;i<=l;i++)
				{
					max[i]=a[i];
					
				}
		for(j=2;j<=n;j++)
		{
			scanf("%s",&a);
			l=strlen(a);
			if (l<small)
			{
				for(i=0;i<=l;i++)
				{
					min[i]=a[i];
					
				}
				small=l;			
			}
			
			else if (l>large)
			{
				for(p=0;p<=l;p++)
				{
					max[p]=a[p];
					
				}
				
				large=l;			
			}
			
		}
		
		for (i=0;i<=large-1;i++)
			printf("%c",max[i]);
		printf("\n");
		for (i=0;i<=small-1;i++)
			printf("%c",min[i]);
	}	
	
	return 0;
}
void main()
{
	char str[500];
	int i,j=1,n,k,t,num[50]={0},a[50]={0},b[500]={0};
	char c;
	gets(str);
	for(i=0;(c=str[i])!='\0';i++)
	{
		if(c==' ')
		{
		num[0]=i;
		b[0]=i;
		break;
		}
	}
    for(i=b[0]+1;(c=str[i])!='\0';i++)
	{
		if(c==' ')
		{
			num[j]=i-b[j-1]-1;
			b[j]=i;
		    j++;
		}
	}
    for(i=b[j-1]+1;i<500;i++)
		if((c=str[i])=='\0')
		{
			b[j]=i;
		    num[j]=b[j]-b[j-1]-1;
			break;
		}
    n=j+1;
	for(i=0;i<n;i++)
		a[i]=num[i];
	for(j=0;j<n-1;j++)
		for(i=0;i<n-j-1;i++)
		if(a[i]>a[i+1])
		{
			t=a[i];
			a[i]=a[i+1];
			a[i+1]=t;
		}
	for(i=0;i<n;i++)
	{
		if(num[i]==a[n-1]&&i!=0)
		{for(k=b[i-1]+1;k<b[i];k++)
		printf("%c",str[k]);break; 	}
		if(num[i]==a[n-1]&&i==0)
		{for(k=0;k<b[i];k++)
		printf("%c",str[k]);break; 	}

	}
     	printf("\n");   
	for(i=0;i<n;i++)
	{		
		if(num[i]==a[0]&&i!=0)
		{for(k=b[i-1]+1;k<b[i];k++)
		printf("%c",str[k]);break;}
		if(num[i]==a[0]&&i==0)
		{for(k=0;k<b[i];k++)
		printf("%c",str[k]);break; 	}
		
	}
	printf("\n");
}
int main()
{
	int i=0,j,max1,min1,k,x,m;
	char a[N],max[U],min[U];
	for(m=0;m<N;m++)
		a[m]='\0';
	for(m=0;m<U;m++)
		max[m]='\0';
	for(m=0;m<U;m++)
		min[m]='\0';
	gets(a);
	for(i=0;;)
	{
        if(a[i]=='\0')
			break;
		else
		{
		k=0; 
		    for(j=i;j<N;j++)
			{
              if(a[j]==' '||a[j]==','||a[j]=='\0')
				  break;
			  else
				  k++;
			 }
             //printf("%d\n",k);
		     if(!i)
			  {
			    max1=min1=k;
				for(x=0;x<j;x++)
				{
					max[x]=min[x]=a[x];
				}
			  }
			    
		       else
			   {
                    if(k>max1)
					{
						max1=k;
                        for(x=i;x<j;x++)
						{

							max[x-i]=a[x];
							
						}
						
					}
					else if(k<min1&&k!=0)
					{
							for(m=0;m<U;m++)
		                    min[m]='\0';	
						min1=k;
						for(x=1;x<j;x++)
						{

							min[x-i]=a[x];
						}

                        
					}
					
			   }
		
		}
	    i=j+1;
	}
	puts(max);
	puts(min);
    return 0;
}
int main()
{
	char min[50],max[50],s[1000];
	int i,len,len1=0,len2=50,count,k=0,j;
	gets(s);
	len=strlen(s);
	for(i=0;i<=len;i++)
	{
		if(s[i]==' '|| s[i]=='\0')
		{
			count=i-k;
			
			if(count>len1)
			{ 
				int l=0;
				for(j=k;j<i;j++)
				{
					max[l]=s[j];
					l++;
				}
				max[l]='\0';
				len1 = count;
			}
			if(count<len2&&count!=0)
			{ 
				int l=0;
				for(j=k;j<i;j++)
				{
					min[l]=s[j];
					l++;
				}
				min[l]='\0';
				len2 = count;
			}
			k=i+1;
		}
	}
	printf("%s\n",max);
	printf("%s",min);
	return 0;
}
int main()
{
	char s[1000];
	int len,t,i,start[1000],endd[1000],max,min;
	
	gets(s);
	len=strlen(s);
	t=1;
	start[1]=0;
	for(i=1;i<len;i++)
	{
		if(s[i]==' ')
		{
			endd[t]=i-1;
			if(s[endd[t]]==',') endd[t]--;
			t++;
			start[t]=i+1;
		}
	}
	endd[t]=len-1;
	max=1;min=1;
	for(i=2;i<=t;i++)
	{
		if(endd[i]-start[i]>endd[max]-start[max])
			max=i;
		if(endd[i]-start[i]<endd[min]-start[min])
			min=i;
	}
	for(i=start[max];i<=endd[max];i++)
		printf("%c",s[i]);
	printf("\n");
	for(i=start[min];i<=endd[min];i++)
		printf("%c",s[i]);
	printf("\n");
	
	return 0;
}
int main()
{
	int max=-1,min=9999999;
	char a[1000],b[1000],c[1000];
	while(cin>>a)
	{
		int l=strlen(a);
		if(max<l){
			max=l;
			strcpy(b,a);
		}
		if(min>l){
			min=l;
			strcpy(c,a);
		}
	}
	cout<<b<<endl<<c<<endl;
	return 0;
}
int main()
{
	char a[20000];
	char b[200][100];
	int c[200];
	cin.get(a,20000);
	
	int i = 0;
	int j = 0;
	int k = 0;
	while(a[i] != '\0')
	{
		if(a[i] == ' ' || a[i] == ',')
		{
			j++;
			k = 0;
		}
		else
			b[j][k++] = a[i];
		i++;
	}
	
	int max = strlen(b[0]); int maxpis = 0;
	int min = strlen(b[0]); int minpis = 0;
	for(i = 0 ; i < 200 ; i++ )
	{
		c[i] = strlen(b[i]);
		if(c[i] > max)
		{
			maxpis = i;
			max = c[i];
		}
		if(c[i] < min && c[i] > 0)
		{
			minpis = i;
			min = c[i];
		}
	}
	
	cout<<b[maxpis]<<endl;
	cout<<b[minpis]<<endl;

	return 0;
}
int main()
{
	char min[510];
	char max[510];
	char all[510];
	char cur[510];
	int len, i, j;
	int minlen = 510, maxlen = 0;

	gets(all);

	len = strlen(all);

	j = 0;
	for (i = 0; i < len; ++i) {
		if (all[i] == ' ' || all[i] == '\0' || i == len-1) {
			if (i == len-1) {
				cur[j++] = all[i];
			}
			cur[j] = '\0';

			if (minlen > strlen(cur)) {
				minlen = strlen(cur);
				strcpy(min, cur);
			}
			if (maxlen < strlen(cur)) {
				maxlen = strlen(cur);
				strcpy(max, cur);
			}

			if (all[i] == '\0' || i == len)
				break;

			j = 0;
			continue;
		}

		cur[j++] = all[i];
	}
		
	printf("%s\n%s\n", max, min);

	return 0;
}
void main()
{
	char str [1000],c,string[200],st[100];
	int a[500],i,j,n,d,sum,k,x,y;
	gets(str);
	n=0;
	i=0;
	for (i=0;i<50;i++)
		a[i]=0;
 for(i=0;(c=str[i])!='\0';i++)
 {
		if ((c=str[i])!=' ')
        a[n]=a[n]+1;
        else 
			n++;
 }
	while ((c=str[i])!='\0');
	d=a[0];
	for (i=0;i<=n;i++)
	if (d<a[i])
	{
		d=a[i];
	j=i;
	}
	sum=0;
	if (j!=0)
	{
	k=0;
	for (i=0;i<j;i++)
	{
		if (a[i]==0)
		{
			sum=sum+1;
			k++;
		}
		else
		sum=sum+a[i];
	}
 sum=sum+j-k;
	}
 
   for (i=sum;i<=sum+d;i++)
	 string [i-sum]=str[i] ;
 string[d]='\0';
 puts(string);
 
y=0;
for (i=1;i<d;i++)
{
	for (j=0;j<=n;j++)
		if (a[j]==i)
		{
			x=j;
			y=i;
			break;
		}
		if(y!=0)
			break;
}
 sum=0;
if (x!=0)
{
	k=0;
	for (i=0;i<x;i++)
	{
		if (a[i]==0)
		{
			sum=sum+1;
			k++;
		}
		else
		sum=sum+a[i];
	}
 sum=sum+x-k;
}
 for (i=sum;i<=sum+ y;i++)
	 st [i-sum]=str[i] ;
 st[y]='\0';
 puts(st );
 
}
int main()
{
	int n;
	int i;
	char word[200][20];
	int count[200]={0};
	int max=0,min=20;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s",word[i]);
		
	}
	
	for(i=0;i<n;i++)
	{
		count[i]=strlen(word[i]);
	}
	
	for(i=0;i<n;i++)
	{
		if(count[i]>max)
		{
			max=count[i];
		}
	}
	
	for(i=0;i<n;i++)
		
	{
		if(count[i]<min)
			
		{
			min=count[i];
		}
	}
	
for(i=0;i<n;i++)
	{
	if(strlen(word[i])==max)
	{
	printf("%s\n",word[i]);
	break;
	}
	}

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

	

	return 0;
}
int len(char s[100])
{
	int l,i;
	l=0;
	for(i=0;i<100;i++) if(((s[i]>96)&&(s[i]<123))||((s[i]>64)&&(s[i]<91))) l++;
	return l;
}
void main()
{
	int i,p,n,maxlen,minlen,maxnum,minnum;
	char s[1000],c[50][100];
	for(p=0;p<50;p++) for(i=0;i<100;i++) c[p][i]=0;
	for(i=0;i<1000;i++) s[i]=0;
	gets(s);
	i=0;
	do
	{
		c[0][i]=s[i];
		i++;
	}while(((s[i]>96)&&(s[i]<123))||((s[i]>64)&&(s[i]<91)));
	for(n=1;n<50;n++)
	{
		i++;
		p=0;
		do
		{
			c[n][p]=s[i];
			p++;
			i++;
		}while(((s[i]>96)&&(s[i]<123))||((s[i]>64)&&(s[i]<91)));
	}
	maxlen=0;
	minlen=100;
	for(n=0;n<50;n++)
	{
		if(c[n][0]>0)
		{
		if(len(c[n])>maxlen)
		{
			maxlen=len(c[n]);
			maxnum=n;
		}
		if(len(c[n])<minlen)
		{
			minlen=len(c[n]);
			minnum=n;
		}
		}
	}
	printf("%s\n%s",c[maxnum],c[minnum]);
}