semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main(int argc, char* argv[])
{
	char sentense[300];
	gets(sentense);
	sentense[strlen(sentense)]=' ';
	int num[300]={0};
	int i=0,a=0;
	while(i<=strlen(sentense))
	{
		if(sentense[i]==' ')
		{
			a++;
			i++;
		}
		else
		{
		    num[a]++;
		    i++;
		}
	}
	int max=0,min=0;
	for(i=0;i<a;i++)
	{
		if(num[i]>num[max])
			max=i;
		if(num[i]<num[min])
			min=i;
	}
	char l[300],s[300];
	int sum1=0,sum2=0,j=0,k=0;
	for(i=0;i<=max;i++)
	{
		sum1 += num[i]+1;
	}
	for(i=0;i<=min;i++)
	{
		sum2 += num[i]+1;
	}
	for(i=sum1-num[max]-1;i<sum1-1;i++)
	{
		l[j]=sentense[i];
		j++;
	}
	l[j]='\0';
	for(i=sum2-num[min]-1;i<sum2-1;i++)
	{
		s[k]=sentense[i];
		k++;
	}
	s[k]='\0';
	printf("%s\n%s\n",l,s);
	return 0;
}
int main()
{char a[100];
int n=0,b[100],s[100],e,d,max,min,i;
b[0]=-1;
gets(a);
for(i=0;a[i]!='\0';i++)
{if(a[i]==' ')
{n=n+1;
b[n]=i;}
}
for(i=b[n]+1;a[i]!='\0';i++)
{}
n=n+1;
b[n]=i;
for(i=1;i<=n;i++)
s[i]=b[i]-b[i-1]-1;
max=s[1];min=s[1];
for(i=1;i<=n;i++)
{if(max<s[i])
max=s[i];
if(min>s[i])
min=s[i];
}
for(i=1;i<=n;i++)
{if(s[i]==max)
{d=i;break;}
}
for(i=b[d-1]+1;i<b[d];i++)
printf("%c",a[i]);
printf("\n");
for(i=1;i<=n;i++)
{if(s[i]==min)
{e=i;break;}
}
for(i=b[e-1]+1;i<b[e];i++)
printf("%c",a[i]);
return 0;
}
int main()
{
    char smin[p],smax[p],ch[p],temp[p];
	int max=0,min=p,sum;
	int i,j,n;
    
	gets(ch);
	n=strlen(ch);
	sum=0;
	for(i=0;i<=n;i++)
	{
	  if((ch[i]==' ')||(ch[i]==',')||(i==n))
	  {
	    if ((sum<min)&&(sum>0))
		{
		    strcpy(smin,temp);
			min=sum;
		}
		if (sum>max)
		{
		    strcpy(smax,temp);
			max=sum;
		}
		sum=0;
	  }
	  else
	  {
	      sum++;
		  temp[sum-1]=ch[i];
	  }
	}
	
	for(j=0;j<max;j++)
		printf("%c",smax[j]);
    printf("\n");
	for(j=0;j<min;j++)
		printf("%c",smin[j]);
	return 0;
}
void main()
{
    int a,i,b,j,m,n,e;
	char str[100][50];
	char gold[500];
	char c;
	gets(gold);
	e=strlen(gold);
    a=0;b=0;i=0;
	for(a=0;a<=e;a++)
	{
		if(gold[a]!=' ')
		{
			str[i][b]=gold[a];b++;
		}
		if(gold[a]==' ')
		{
			i++;b=0;
		}
	}
    m=0;n=0;
	for(j=0;j<=i;j++)
	{
		if(strlen(str[j])>strlen(str[m]))m=j;
        if(strlen(str[j])<strlen(str[n]))n=j;
	}
	printf("%s\n%s\n",str[m],str[n]);
}
int main(){
	char str[2000];
	int i,len,sz[200],k=1,max,maxword=0,min,minword=0;
	gets(str);
	len=strlen(str);
    for(i=0;i<len;i++){
		if((str[i]==' '||str[i]==',')&&(str[i+1]!=' '&&str[i+1]!=',')){
        sz[k]=i+1;
		k++;
	   str[i]=0;
	}}
	sz[k]=len+1;
	    max=sz[1]-1;
		min=sz[1]-1;
	for(i=1;i<k;i++){
		if (sz[i+1]-sz[i]-1>max){
		max=sz[i+1]-sz[i]-1;
		maxword=sz[i];}
		else if(sz[i+1]-sz[i]-1<min){
			min=sz[i+1]-sz[i]-1;
			minword=sz[i];}
	}
	printf("%s\n",&str[maxword]);
	printf("%s\n",&str[minword]);
	
	return 0;
}
char sentence[1000];
void main()
{
	gets(sentence);
	int i,lenth=0,place=0,max=0;
	for(i=0;sentence[i]!='\0';i++)
	{
		for (lenth=0;(sentence[i]>='a' && sentence[i]<='z') ||(sentence[i]>='A' && sentence[i]<='Z');i++)
		{
			lenth++;
			if(max<lenth)
			{
				max=lenth;
				place=i;
			}
		}
	}

	for (i=(place-max+1);i<=place;i++) printf("%c",sentence[i]);
	 printf("\n");
	
    int j,lenth2=0,place2=0,min=100;
	for(j=0;sentence[j]!='\0';j++)
	{
		for (lenth2=0;(sentence[j]>='a' && sentence[j]<='z')||(sentence[j]>='A' && sentence[j]<='Z');j++)
		{
			lenth2++;
		}
			if(min>lenth2)
			{
				min=lenth2;
				place2=j;
			}
		
	}

    for (j=(place2-min);j<place2;j++)   printf("%c",sentence[j]);
	printf("\n");

}
void main()
{
	char c;
	char s[210][100];
	int i=0,k,u=1,n;
	for(;;)
	{
		if(u==0)
			break;
		c=getchar();
		if(c=='\n')
			break;
		if(c==' '||c==',')
			continue;
		k=0;
		s[i][0]=c;
		for(;;)
		{
			c=getchar();
			if(c==' '||c==',')
				break;
			if(c=='\n')
			{
				u=0;
				break;
			}
			k++;
			s[i][k]=c;
		}
		s[i][k+1]='\0';
		i++;
	}
	n=i-1;
	for(i=1,k=0;i<=n;i++)
		if(strlen(s[k])<strlen(s[i]))
			k=i;
	printf("%s\n",s[k]);
	for(i=1,k=0;i<=n;i++)
		if(strlen(s[k])>strlen(s[i]))
			k=i;
	printf("%s",s[k]);
}
int main()
{
	int i,j,m=0,n=1000,o,p,q;
	char jz[500];
	gets(jz);
	char a[300],b[300],c[300];
	o=strlen(jz);
	for(i=0;i<o;i++)
	{
		j=0;
		while(jz[i]!=' ')
		{
			a[j]=jz[i];
			j++;
			i++;
		}
		a[j]='\0';
		p=strlen(a);

		if(m<p)
		{
			m=p;
			strcpy(b,a);
		}
		q=strlen(a);
		if(n>q)
		{
			n=q;
			strcpy(c,a);
		}
	}
	printf("%s\n",b);
	printf("%s\n",c);
	return 0;
}
void main()
{
	int n,i,j,num,m,k,l,c[1000]={0},max,min;
	char s1[2000]={0},s2[2000]={0};
	gets(s1);
	n=strlen(s1);
	for(i=0;i<n;i++)
		s2[i]=s1[i];
	for(i=0;i<n;i++)
for(i=0;i<n;i++)
	{
		if((s1[i]>=65&&s1[i]<=90)||(s1[i]>=97&&s1[i]<=122))
		{
			s1[i]=0;
			k=1;
		}
		else 
		{
			c[i]=0;
            k=0;
		}
		if(k!=0)
		{
			for(m=i+1,num=1;m<n;m++)
		{
			if((s1[m]>=65&&s1[m]<=90)||(s1[m]>=97&&s1[m]<=122))
		{
			s1[m]=0;
			num++;
		}
			else break;
		}
		}
		if(k!=0)c[i]=num;
}
for(i=1,max=c[0];i<1000;i++)
{
	if(c[i]>max)
	{
		max=c[i];
		k=i;
	}
}
for(i=k;i<n;i++)
{
	if((s2[i]>=65&&s2[i]<=90)||(s2[i]>=97&&s2[i]<=122))
		printf("%c",s2[i]);
	else break;
}
printf("\n");
for(i=1,min=c[0],l=0;i<1000;i++)
{
	if(c[i]<min&&c[i]!=0)
	{
		min=c[i];
		l=i;
	}
}

for(i=l;i<n;i++)
{
	if((s2[i]>=65&&s2[i]<=90)||(s2[i]>=97&&s2[i]<=122))
		printf("%c",s2[i]);
	else break;
}
}
int main()
{
char s[50],max[50],min[50];
while (scanf("%s",s)!=EOF)
{
  if (strlen(s)>strlen(max)) strcpy(max,s);
  if (strlen(s)<strlen(min)) strcpy(min,s); 
}
printf("%s\n%s",max,min);
return 0;
}
int main()
{
char m[1000];
int i,t[1000]={0},k,l,n=0 ,num1[100]={0},num2[100]={0},max,min,z1=0,z2=0;
gets(m);
k=-1;
for(i=0;i<=strlen(m);i++)
{ 
l=i;
if(m[i]==' '||m[i]=='\0')
{t[n]=l-k-1;
num2[n]=l;
num1[n]=k;
k=i;
n++;}
  }
max=t[0];min=t[0];
for(i=0;t[i]!=0;i++)
{if(t[i]>max)
{   max=t[i];
z1=i;}
if(t[i]<min)
{min=t[i];
z2=i;}
}
for(i=num1[z1]+1;i<num2[z1];i++)
{printf("%c",m[i]);}
printf("\n");
for(i=num1[z2]+1;i<num2[z2];i++)
printf("%c",m[i]);

return 0;
}
int main()
{

    char az[500]={0};
	char b[50][100]={0};
	gets(az);
	int n,i,j=0,k,s=0;
	n=strlen(az);


	for(i=0;j<n;i++,j++)
	{
		for(k=0;az[j]!=32&&az[j]!=0;k++,j++)
		{
			b[i][k]=az[j];
		}
	s++;
	}


	int as[100]={0};
	for(i=0;i<s;i++)
	{
		as[i]=strlen(b[i]);
	}



	int min=100,max=0,minx=0,maxx=0;
	for(i=0;i<s;i++)
	{
		if(as[i]<min)
		{
			minx=i;
			min=as[i];
		}
		if(as[i]>max)
		{
			maxx=i;
			max=as[i];
		}
	}
	printf("%s\n%s\n",b[maxx],b[minx]);
}
int main()
{
	char allwords[WORD*LENGTH];

	int i;
	int minPos = 0, maxPos = 0, tmpPos = 0;
	int minLen = LENGTH, maxLen = 0, tmpLen = 0;

	gets(allwords);

	int len = strlen(allwords);

	for(i = 0; i < len+1; i++)
	{

		if(allwords[i] == ' ' || allwords[i] == '\0')
		{
			if(tmpLen > maxLen)
			{
				maxPos = tmpPos;
				maxLen = tmpLen;
			}
			if(tmpLen < minLen)
			{
				minPos = tmpPos;
				minLen = tmpLen;
			}
			allwords[i] = '\0';
			tmpLen = 0;
			tmpPos = i + 1;
		}
		else
		{
			tmpLen++;
		}
	}

	printf("%s\n", allwords + maxPos);
	printf("%s\n", allwords + minPos);


	return 0;
}
void f(char c[],char a[],int a1,int a2)
{
	int i;
	for(i=a1;i<=a2;i++) c[i-a1]=a[i];
}//copy
main()
{
	int n=0,i,max,min,l[200],length,d[201]={0};
	char a[10000],c[200][30]={0},maxc[30]={0},minc[30]={0};
	gets(a);
	length=strlen(a);
	for(i=1;i<length;i++) {if((a[i]==' '||a[i]==',')&&a[i-1]!=' '&&a[i-1]!=',') d[++n]=i;}//n+1 ge danci qie ge d1-dn
	if(n==0) f(c[0],a,0,length-1);
	else { f(c[0],a,0,d[1]-1);for(i=1;i<n;i++) f(c[i],a,d[i]+1,d[i+1]-1); f(c[n],a,d[n]+1,length);}

	for(i=0;i<=n;i++) l[i]=strlen(c[i]);
    max=l[0];
    min=l[0];
    strcpy(maxc,c[0]);
    strcpy(minc,c[0]);
	for(i=1;i<=n;i++) 
	{
		if(l[i]>max) {max=l[i];strcpy(maxc,c[i]);}
		else if(l[i]<min) {min=l[i];strcpy(minc,c[i]);}
	}
	printf("%s\n%s\n",maxc,minc);
}
int main()
{
	char a[205];
	int i, j, count = 0, max = 0, min = 250, m, n;
	cin.getline(a,205);
	for(i = 0; i < strlen(a); )
	{
		for(j = i; a[j] != '\0'; j++)
		{
		    if(a[j] != ' ' && a[j] != ',')
		    {
				count++;
			}
			else
			{
				if(a[j - 1] != ' ' && a[j - 1] != ',')
				{
				    if(count > max)
			    	{
			    		max = count;
		    			m = i;
		    		}
			    	if(count < min)
		    		{
		    			min = count;
		    			n = i;
		     		}
				}
				break;
			}
		}
		if(a[j - 1] != ' ' && a[j - 1] != ',')
		{
	    	if(count > max)
    		{
		    	max = count;
	    		m = i;
    		}
		    if(count < min)
	    	{
    			min = count;
			    n = i;
		    }
		}
		count = 0;
		i = j + 1;
	}
	for(i = m; (a[i] != ' ' && a[i] != ',' && a[i] != '\0'); i++)
		cout << a[i];
	cout << endl;
	for(i = n; (a[i] != ' ' && a[i] != ',' && a[i] != '\0'); i++)
		cout << a[i];

	return 0;
}
int main()
{
	char a[500];
	char *p;
	int n=1;
	int num[50];
	int max,min,max1,max2,min1,min2,i;
	gets(a);
	for(p=a;*p!='\0';p++)
	{
		if(*p==' ')
		{
			num[n]=p-a;
			n++;
		}
	}
	num[0]=-1;
	num[n]=strlen(a);
	max=num[1]-num[0];
	min=num[1]-num[0];
	max1=num[0];
	max2=num[1];
	min1=num[0];
	min2=num[1];
	for(i=1;i<n;i++)
	{
		if(num[i+1]-num[i]>max)
		{
			max1=num[i];
			max2=num[i+1];
			max=max2-max1;
		}
		if(num[i+1]-num[i]<min)
		{
			min1=num[i];
			min2=num[i+1];
			min=min2-min1;
		}
	}
	for(p=a+max1+1;p<a+max2;p++)
		printf("%c",*p);
	printf("\n");
	for(p=a+min1+1;p<a+min2;p++)
		printf("%c",*p);
	printf("\n");
	return 0;
}
void main()
{
	char a[10000];
	int k[200]={0},l,i,j=1,m[200]={0},max=1,min=1;
	gets(a);
	for(i=0;i<strlen(a);i++)
	{
		if(a[i]!=' '&&a[i]!=',')
		{
			k[j]++;
		}
		else
		{
			if(a[i]==' ')
				{
					m[j]=i;
					j++;}	
		}
	}
	m[j]=strlen(a);
	for(i=1;i<=j;i++)
	{
		if(k[max]<k[i])max=i;
	}
	for(l=m[max]-k[max];l<m[max]&&a[l]!=',';l++)
		printf("%c",a[l]);
	putchar('\n');
	for(i=1;i<=j;i++)
	{
		if(k[min]>k[i])min=i;
	}
	for(l=m[min]-k[min];l<m[min]&&a[l]!=',';l++)
		printf("%c",a[l]);
}
int main(){
	  char zfc[1000];
      char ip[50][1000];	  
	  int a,b,c,max=0,min=~(1<<31);
      gets(zfc);
      int len = strlen(zfc);
      int j=0,k=0,i;
	  for(i=0;i<len+1;i++){
        if (zfc[i]!=' '&&zfc[i]!='\0'){
           ip[j][k] = zfc[i];
           k++;
		}
	    else if (zfc[i]==' '|| zfc[i]=='\0'){
           ip[j][k] = '\0';
           j++;
           k=0;
		}
	  }	  
	  for(i=0;i<j;i++){
		  a=strlen(ip[i]);
		  if(a>max){
			  b = i;
			  max=a;
		  }
          if(a<min){
			  c = i;
              min=a;
		  }
	  }
	  printf("%s\n%s\n",ip[b],ip[c]);
	  return 0;
}
int main()
{
	int n,i,j,k,num[1000];
	char a[1000][100];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s",a[i]);
		num[i]=strlen(a[i]);
	}
	for(i=0;i<n;i++)
	{
		for(j=n-1;j>i;j--)
		{
			if(num[j]>num[j-1])
			{
				k=num[j];
				num[j]=num[j-1];
				num[j-1]=k;
			}
		}
	}
	for(i=0;i<n;i++)
	{
		if(strlen(a[i])==num[0])
		{
			printf("%s\n",a[i]);
			break;
		}
	}
	for(i=0;i<n;i++)
	{
		if(strlen(a[i])==num[n-1])
		{
			printf("%s\n",a[i]);
			break;
		}
	}
	return 0;
}
char s[5000],word[200][20];

int checknum(int m)
{
   if((s[m]!=' '&&s[m]!=','&&m<strlen(s))&&(s[m-1]==' '||s[m-1]==','||m-1<0))
   return 1;
   else return 0;
}
int findlen(int b)
{
  int i;
  i=0;
  while(s[b+i]!=' '&&s[b+i]!=','&&(b+i)<strlen(s)) i++;
  return i;
}

int main()
{
  int i,j,k,max,min,maxn,minn;
  gets(s);
  k=0;
  i=0;
  max=0;
  min=20;
  while(i<strlen(s))
  {
    if(checknum(i)==1)
	{
	   strncpy(word[k],s+i,findlen(i));
	   //printf("%d %d\n",min,minn);
	   if(max<findlen(i))
	   {
	     max=findlen(i);
		 maxn=k;
	   }
	   if(min>findlen(i))
	   {
	     min=findlen(i);
		 minn=k;
	   }
	   k++;
	}
	i++;
  }
  printf("%s\n%s",word[maxn],word[minn]);
  scanf("%d",&i);
  return 0;
}
int main()
{
   char string[1000];
   gets(string);
   int i,len,b[200],m=0,c[200],count=0,max=0,min=0;
   len=strlen(string);
   for(i=0;i<len;i++)
   {
      if(string[i]==' '||string[i]==',')
	  {
        c[m]=i;
        m++;
        count++;
	  }
   }
   if(count>=2)
   {
      for(i=1;i<count;i++)
	  {
         b[0]=c[0];
         b[i]=c[i]-c[i-1]-1;
         b[count]=len-c[count-1]-1;
	  }
     for(i=0;i<=count;i++)
	 {
        if(b[i]>b[max])
         max=i;
	 }
     for(i=0;i<=count;i++)
	 {
        if(b[i]<b[min]&&b[i]!=0)
          min=i;
	 }
     if(max==0)
	 {
       for(i=0;i<c[0];i++)
	   {
         printf("%c",string[i]);
	   }  
	 }
     else if(max==count)
	 {
        for(i=c[count-1]+1;i<len;i++)
		{
           printf("%c",string[i]);
		}
	 }
     else
	 {
        for(i=c[max-1]+1;i<c[max];i++)
		{
        printf("%c",string[i]);
		}
	 }
     printf("\n");
     if(min==0)
	 {
       for(i=0;i<c[0];i++)
	   {
         printf("%c",string[i]);
	   }
     }
     else if(min==count)
     {
        for(i=c[count-1]+1;i<len;i++)
		{
          printf("%c",string[i]);
		} 
     }
     else
	 {
       for(i=c[min-1]+1;i<c[min];i++)
	   {
          printf("%c",string[i]);
	   }
     }
      printf("\n");
   }
   else  if(count==1)
   {
       if(c[0]>len-c[0]-1)
	   {
          for(i=0;i<c[0];i++)
		  {
             printf("%c",string[i]);
		  }
         printf("\n");
         for(i=c[0]+1;i<len;i++)
		 {
           printf("%c",string[i]);
		 }
         printf("\n");
	   }
       else  if(c[0]<len-c[0]-1)
	   {
          for(i=c[0]+1;i<len;i++)
		  {
             printf("%c",string[i]);
		  }
          printf("\n");
          for(i=0;i<c[0];i++)
		  {
              printf("%c",string[i]);
		  }
          printf("\n");
	   }
   }
   else   if(count==0)
   {
      printf("%s\n",string);
      printf("%s\n",string);
   }
 return 0;
}
void main()
{
	int i,j,k,m;
	char a[60][30];
	{for (i=0;i<60;i++)
	{	for(j=0;j<30;j++)
	{a[i][j]='\0';}}}
	j=0;
	do {scanf("%s",a[j]);j++;}
	while (getchar()!='\n');
    for (i=0,k=1;k<j;k++)
	{if (strlen(a[i])<strlen(a[k])) i=k;}
	printf("%s\n",a[i]);
	for (m=0,k=1;k<j;k++)
	{if (strlen(a[m])>strlen(a[k])) m=k;}
	puts(a[m]);
}
int main()
{
 char danci[50][50];
 char str[500];
 char *p;

 int changdu[50],e,n=0,a,l,k;
 gets(str);
 
 p=str;
 for(a=0;a<50;a++){
   
  while(*p==' ')//????????????
	  p++;


  k=0;
  while(*p!=' '&& *p!='\0')
  {
    danci[a][k]=*p;  
	k++;
	p++;
  }
  danci[a][k]='\0';

  changdu[a]=strlen(danci[a]);

    if(*p=='\0')
	  break;//???????????????????danci?


 }


n=a+1;

 for(int k=1;k<=n;k++){
  for(int i=0;i<n-k;i++){
   if(changdu[i]>changdu[i+1]){
    e=changdu[i+1];
    changdu[i+1]=changdu[i];
    changdu[i]=e;
   }
  }
 }

  for(int t=0;t<n;t++){
  l=strlen(danci[t]);
  if(changdu[n-1]==l){
   printf("%s\n",danci[t]);
   break;
  }
 }

 for (int q=0;q<n;q++){
  l=strlen(danci[q]);
  if(changdu[0]==l){
   printf("%s\n",danci[q]);
   break;
  }
 }

 return 0;
}
void main()
{
	int i,j,n,m,k,s=0,z[100]={0},y,x[100]={0},t[100]={0};
	char a[1000],b[100][100],c[1000];
	for(i=0;i<100;i++)
		for(j=0;j<100;j++) b[i][j]='\0';
	for(i=0;i<1000;i++) c[i]='\0';
	gets(a);
	n=strlen(a);
	for(i=0;i<n;i++)
	{
		if(a[i]!=' '&&a[i]!=',')
		{
			s=s+1;
			for(j=i;j<n;j++)
			{
				if(a[j]!=' '&&a[j]!=',')
				{
					b[s][j-i]=a[j];a[j]=',';
					x[s]=x[s]+1;
				}
				else break;
			}
		}
	}
	y=1;
	for(i=1;i<s;i++)
	{
		if(x[i+1]>x[y]) y=i+1;
	}
	printf("%s\n",b[y]);
	y=1;
	for(i=1;i<s;i++)
	{
		if(x[i+1]<x[y]) y=i+1;
	}
	printf("%s\n",b[y]);
}
void main()
{
    char ch[500],*p1=ch,*p2=ch;
    int i,length=0,flag=1,max=0,min=500;
    gets(ch);
    for(i=0;ch[i]!='\0';i++)
    {
    	if(ch[i]==' ')
    	{
    		if(flag==1)
    		{
    			if(length>max)
    			{
    				max=length;
    				p1=&ch[i]-length;
    			}
    		    if(length<min)
    			{
    				min=length;
    				p2=&ch[i]-length;
    			}
    			length=0;
    			flag=0;
    		}
    	}
    	else
    	{
    		if(flag==0) flag=1;
    		length++;
    	}
    }
    if(length>0)
    {
    	if(length>max) p1=&ch[i]-length;
    	else if(length<min) p2=&ch[i]-length;
    }
    for(;*p1!=' '&&*p1!=0;p1++)
    printf("%c",*p1);
    printf("\n");
    for(;*p2!=' '&&*p2!=0;p2++)
    printf("%c",*p2);
    printf("\n");
    		
}
int main()
{
    int i,j,max,min;
    char s[100],a[100],b[100],t[100];
    gets(s);
    s[strlen(s)]=' ';
    j=0;
    max=0;
    min=100;
    for(i=0;i<strlen(s);i++)
        if (s[i]!=' ')
        {
            t[j]=s[i];
            j++;
        }
        else
        {
            if (j>max)
            {
                max=j;
                strncpy(a,t,j);
            }
            if (j<min)
            {
                min=j;
                strncpy(b,t,j);
            }
            j=0;
        }
    for(i=0;i<max;i++)
        printf("%c",a[i]);
    printf("\n");
    for(i=0;i<min;i++)
        printf("%c",b[i]);
    return 0;
}
void main()
{
    int l=0,max=0,min=100,i=0,k;
    char m[1000];
    int max1, min1;
   
    max1=0;
    min1=0;
    gets(m);
    k=strlen(m);
    
    for (i=0;i<k;i++)
    {
    	    l++;
    		if ((m[i+1]==' ')||(i==k-1))
    		{
    			if (l>max)
    		    {
    		    	max=l;
    		    	max1=i-l+1;
    		    }
    		    if (l<min)
    		    {
    		    	min=l;
    		    	min1=i-l+1;
    		    }
    			l=0;
    			i++;
    		}    		
    }
    for(i=max1;i<max1+max;i++)
   {
   	printf("%c",m[i]);
   }
   printf("\n");
   for(i=min1;i<min1+min;i++)
   {
   	printf("%c",m[i]);
   }
}
void main()
{
	char st[1000],s[50][50];
	int i,j,k[50],p,q,max,min,l;
	gets(st);
	l=strlen(st);
	j=0; 
	for (i=0;i<50;i++)
		k[i]=0;
	for (i=0;i<l;i++)
	{
		if (st[i]!=' ')
		{
			s[j][k[j]]=st[i];
			k[j]=k[j]+1;
		}
		else
			j=j+1;
	}
	max=0; min=50;
	for (i=0;i<=j;i++)
	{
		if (k[i]<min) 
		{
			min=k[i];
			q=i;
		}
		if (k[i]>max)
		{
			max=k[i];
			p=i;
		}
	}
	for (i=0;i<max;i++)
		printf("%c",s[p][i]);
	printf("\n");
	for (i=0;i<min;i++)
		printf("%c",s[q][i]);
	printf("\n");
}
int main()
{
	char w[1000],ws[50][20]={0};
	int i;
    int len;
	int j=0,k=0;
	int mi=0,ma=0;
	gets(w);
	len=strlen(w);
	for(i=0;i<len;i++){
		if(w[i]!=' '){
			ws[j][k]=w[i];
			k++;
		}
		else if(w[i]==' '){
			j++;
			k=0;
		}
	}
	int min=strlen(ws[0]);
	int max=strlen(ws[0]);
	for(i=1;i<=j;i++){
		if(min>strlen(ws[i])){
			min=strlen(ws[i]);
			mi=i;
		}
		if(max<strlen(ws[i])){
			max=strlen(ws[i]);
			ma=i;
		}
	}
	printf("%s\n",ws[ma]);
	printf("%s\n",ws[mi]);	
	return 0;
}
int main(){
	char zfc[LEN];
	gets(zfc);
	int sz[NUM];
	int i,j,count=0;
	int s=strlen(zfc);
	for(i=0;i<s;i++){
		if(zfc[i]==' '){
			sz[count+1]=i;
			count++;
		}
	}
	sz[count+1]=i;
	sz[0]=0-1;
	int len,max=0,min=50;
	int a,b;
	for(i=1;i<=count+1;i++){
		len=sz[i]-sz[i-1]-1;
		if(len>max){
			max=len;
			a=i;
		}
		if(len<min){
			min=len;
			b=i;
		}
	}
	for(j=sz[a-1]+1;j<sz[a];j++){
		printf("%c",zfc[j]);
	}
	printf("\n");
	for(j=sz[b-1]+1;j<sz[b];j++){
		printf("%c",zfc[j]);
	}
	return 0;
}
int main()
{
	char s[100];
	int chars[20]={0}, loci[20]={0}, i, j=0/*chars?????????*/, max, maxi, min, mini, preword=0, word=0;
	gets(s);
	for(i=0;i<=strlen(s);i++)
	{	
		if (preword)
		{
			if(isalpha(s[i]))
				{
					word=1;
					chars[j]++;
					preword=1;
				}
			else {word=0;preword=0;j++;}
		}
		else
		{
			if (isalpha(s[i]))
			{
				word=1;
				chars[j]++;
				loci[j]=i;
				preword=1;
			}
			else {word=0;preword=0;}
		}
	}
	max=chars[0];
	maxi=0;
	for(i=0;i<j;i++)
	{
		
		if(max<chars[i])
		{
			max=chars[i];
			maxi=i;
		}
	}
	min=chars[0];
	mini=0;
	for(i=0;i<j;i++)
	{
		
		if(min>chars[i])
		{
			min=chars[i];
			mini=i;
		}
	}
	for(i=loci[maxi];i<loci[maxi]+max;i++)	
		printf("%c",s[i]);
	printf("\n");
	for(i=loci[mini];i<loci[mini]+min;i++)	
		printf("%c",s[i]);
	printf("\n");
	return 0;
}
void main(){
	char s[500];
	int i,m,j=1,k=1,sp[50],len[50],minbase=1,maxbase=1;//sp??????????????,len????????
	gets(s);
	sp[0]=0;//???"?0?"(??)???????,????????????
	for (i=0;s[i]!='\0';i++){
		if (s[i]==' '){
			sp[j]=i;//???????????
			len[k]=sp[j]-sp[j-1]-1;//?????????????????j?????1,sp[j]-sp[j-1]-1???k?????,?len[1]???sp[j]-sp[j-1]
			j++;
			k++;//????????????
		}
	}
sp[j]=i;
	len[k]=i-sp[j-1]-1;//????????????????i='\0',??????,????????i?\0????,?????????
	len[1]=sp[1];//len[1]????sp[j]-sp[j-1]-1,????sp[j]-sp[j-1],??1??,len[1]??sp[1]
	int tempmin=len[1];
	int tempmax=len[1];
	for (m=1;m<=k;m++){
		if (tempmin>len[m]){
			minbase=m;
			tempmin=len[m];
		}
		else if (tempmax<len[m]){
			maxbase=m;
			tempmax=len[m];//???minbase?maxbase?????????????
		}
	}
	if (maxbase==1){
		for (i=0;i<sp[1];i++)//???????????????i=0??????sp[0]+1
			printf("%c",s[i]);
	}
	else{
		for (i=sp[maxbase-1]+1;i<sp[maxbase];i++)//????????????????n?????n-1???+1???????????
		printf("%c",s[i]);
	}
	printf("\n");
	if (minbase==1){
		for (i=0;i<sp[1];i++)
			printf("%c",s[i]);
	}
	else{
		for (i=sp[minbase-1]+1;i<sp[minbase];i++)//??
		printf("%c",s[i]);
	}
}
int main()
{	
    char str[100];
    int s, _s,mas,min, num,i;// ?s??????????mas??????????	
    //num???????????	
    gets(str);//???????	//?????????????	
    s=0;
    _s=0;
    num=0;	
    mas=0;
    min=50;	
    for(i=0;str[i]!='\0';i++)	
    {		
         if(str[i]==' ')		
         {			//????????????????			
         if(mas<num) 
         {
                     mas=num;
                     s=i;
         }//???????s	
         if (min>num)
         {
                     min=num;
                     _s=i;
         }		
         num=0;//??? ????????		
         }		
         else			
         num++;	
    }	//??????????????????????	
    if(mas<num) {mas=num;s=i;}	//?????????
    if(min>num) {min=num;_s=i;}	
    for(i=s-mas;i<s;i++) 
    printf("%c",str[i]);	
    printf("\n");
    for(i=_s-min;i<_s;i++) 
    printf("%c",str[i]);
	
    return 0;
    }
int main()
{
	char word[201][100] = {0};
	int len[201] = {0};
	int count = 0;
	int in = 0;
	char curword[100] = {0};
	int curlen = 0;
	int maxindex = -1;
	int minindex = -1;
	while ( 1 )
	{
		in = getchar();
		if ( in == ' ' || in == ',' || in == '\n' )
		{
			if ( curlen > 0 )
			{
				curword[curlen] = '\0';
				strcpy( word[count], curword );
				len[count] = curlen;
				if ( maxindex == -1 || curlen > len[maxindex] )
				{
					maxindex = count;
				}
				if ( minindex == -1 || curlen < len[minindex] )
				{
					minindex = count;
				}
				count++;
				curlen = 0;
			}

			//printf("word:%s %d\n", word[count-1], len[count-1]);
			if ( in == '\n' )
				break;
		}
		else
		{
			curword[curlen++] = in;

		}
	}
	printf("%s\n", word[maxindex]);
	printf("%s", word[minindex]);
	return 0;
}
int main()
{
	char s[1000],p[20],p1[20],q[20],q1[20];
	gets(s);
	int i,j,len,count=0,t=0,n=0,x=1,max=0,min=0,y=0;
	strcat(s," ");
	len=strlen(s);
	for(i=0;i<len;i++){
		if(s[i]==' '){
			x=0;
		}
		if(x==0){
			x=1;
			n++;
		}
	}
	for(j=0;j<n;j++){
		for(i=t;i<len;i++){
			if(s[i]!=' '){
				p[i-t]=s[i];
			}
			else{
				s[i]='\0';
				p[i-t]='\0';
				strcpy(q,p);
				t=i+1;
				break;
			}
		}
		if(y==0){
			strcpy(p1,p);
			strcpy(q1,p1);
			y=1;
		}
		if(strlen(p)>strlen(p1)){
			strcpy(p1,p);
		}
		if(strlen(q)<strlen(q1)){
			strcpy(q1,q);
		}
	}
	
	printf("%s\n%s",p1,q1);
	return 0;
}
int main()
{
	int n, len[200];
	char c[200][200];
	int i;
	scanf("%d", &n);
	for(i=0;i<n;i++)
	{
		scanf("%s", c[i]);
		len[i]=strlen(c[i]);
	}
	int max=len[0], min=len[0];
	for(i=1;i<n;i++)
	{
		if(max<len[i])
			max=len[i];
		if(min>len[i])
			min=len[i];
	}
	if(max==min)
		printf("%s\n%s\n", c[0], c[0]);
	else
	{
		for(i=0;i<n;i++)
		{
			if(max==len[i])
			{
				printf("%s\n", c[i]);
				break;
			}
		}
		for(i=0;i<n;i++)
		{
			if(min==len[i])
			{
				printf("%s\n", c[i]);
				break;
			}
		}
	}
	return 0;
}
int main()
{
  int i,j=0,k=0,lth1=99,lth2=0,n1,n2;
  char a[1000],b[50][20];
  gets(a);
  for(i=0;i<999;i++)
  {
	  
	  if(a[i]!=' '&&a[i]!='.'&&a[i]!='\0')
	  {
		  b[j][k]=a[i];
		  k++;
	  }
	  else 
	  {
		  b[j][k]='\0';
		  if(k<lth1)
		  {
			  lth1=k;
			  n1=j;
		  }
		  if(k>lth2)
		  {
			  lth2=k;
			  n2=j;
		  }
		  k=0;
		  j++;
	  }
	  if(a[i] == '\0'||a[i]=='.')
		  break;
	  
  }
  printf("%s\n%s",b[n2],b[n1]);

  return 0;
}
char zfc[1000];
int main(){
	int len,sz[100]={0},i,k=1,maxw=0,minw=0,max,min;
	gets(zfc);
	len=strlen(zfc);
	for(i=0;i<len;i++){
		if(zfc[i]==' '||zfc[i]==','){
			sz[k]=i+1;
			k++;
			zfc[i]=0;
		}
	}
	max=min=sz[1]-1;
	for(i=0;i<k;i++){
		if(strlen(&zfc[sz[i]])>max){
			max=strlen(&zfc[sz[i]]);
			maxw=i;
		}
		else if(strlen(&zfc[sz[i]])<min&&strlen(&zfc[sz[i]])>0){
			min=strlen(&zfc[sz[i]]);
			minw=i;
		}
	}
	puts(&zfc[sz[maxw]]);
	puts(&zfc[sz[minw]]);
	return 0;
}