semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	char str[200][200],s[4000];
	int i=0,j=0,p=0,length[200],max,min;
	
	gets(s);
	for(i=0;s[i]!='\0';i++){
		if(s[i]==' ')
		{
				str[j][i-p]='\0';
				j++;
				p=i+1;
		}
		else if(s[i]!=',')
			str[j][i-p]=s[i];
	}
	str[j][i-p]='\0';


	for(i=0;i<=j;i++){
		length[i]=strlen(str[i]);
	}
	j++;
	max=min=0;
	for(i=0;i<j;i++){
		if(length[max]<length[i])
			max=i;
		if(length[min]>length[i])
			min=i;
	}
	printf("%s\n%s\n",str[max],str[min]);
	return 0;
}
int main()
{
	int maxnum=0,minnum=99,i,flag=0;
	char max[50],min[50],temp[50],t;
	while(1)
	{
		do
		{
			t=cin.get();
		}while(t==' '||t==',');
		for(i=0;t!=' '&&t!=',';)
		{
			temp[i]=t;
			t=cin.get();
			i++;
			if(t=='\n')
			{
				flag=1;
				break;
			}
		}
		temp[i]='\0';
		if(i>maxnum)
		{
			strcpy(max,temp);
			maxnum=i;
		}
		if(i<minnum)
		{
			strcpy(min,temp);
			minnum=i;
		}
		if(flag==1)
			break;
	}
end:
	cout<<max<<endl;
	cout<<min<<endl;

	return 0;
}
int main()
{
 char a[1000];
 int len;
 gets(a);
  len=strlen(a);
 int i,j,m=0,x=0,num[200],b[200];
 for(i=0;i<=len;i++){
  m++;
  if(a[i]==' '||a[i]=='\0'||a[i]==','){
   num[x]=m-1;
   b[x]=i;
   x++;
   m=0;
  }
 }

 int e,n=0,y=0;
 for(i=0;i<x;i++)
 {
  if(num[i]>num[n])
  {
   n=i;
  }
  if(num[i]<num[y] && num[i]!=0)
  {
   y=i;
  }
 }

 for(i=b[n]-num[n];i<b[n];i++){
  if(i!=b[n]-1)
  {
   printf("%c",a[i]);
  }
  if(i==b[n]-1)
  {
   printf("%c\n",a[i]);
  }
 }


 for(i=b[y]-num[y];i<b[y];i++)
  {
   if(i!=b[y]-1)
 {
    printf("%c",a[i]);
   }
   if(i==b[y]-1)
   {
    printf("%c\n",a[i]);
   }
  }
 return 0;
}
void main()
{
	char a[10000],*p=a,n,i,*max,*min,x=0,y=100,word=0;
	gets(a);
	max=a;min=a;
	for(i=0,n=strlen(a),p=a;i<n;i++)
	{
		word++;	
		if(*(p+i)==' ')
		{
			word--;
			if(word>x){x=word;max=p+i-x;}
			if(word<y){y=word;min=p+i-y;} /*???????*/
			word=0;
		}
		if(i==n-1)
		{
			if(word>x){x=word;max=p+i-x+1;}
			if(word<y){y=word;min=p+i-y+1;}
		}
	}
	for(p=max;p<max+x;p++)
	{
		printf("%c",*p);
		if(p==max+x-1)printf("\n");
	}
	for(p=min;p<min+y;p++)
		printf("%c",*p);
}
int main()
{
	int min,max,i;
	char str_i[100],str_a[100],str[200];
	int flag = 1;
	max = -1;
	min = 100000;
	while(flag)
	{
		for( i = 0;;i++ )
		{
			str[i] = getchar();
			if( str[i] == ' ' )
			{
				str[i] = '\0';
				break;
			}
			if( str[i] == '\n' )
			{
				str[i] = '\0';
				flag = 0;
				break;
			}
		}
		if( strlen(str) < min )
		{
			min = strlen(str);
			strcpy(str_i,str);
		}
		int test = strlen(str);
		if( test > max )
		{
			max = strlen(str);
			strcpy(str_a,str);
		}
	}
	printf("%s\n",str_a);
	printf("%s",str_i);
	return 0;
	
	
}
void main()
{ int i=-1,shortlen=100,longlen=0;
  char str[500];
  char *c,*max,*min,*flag1,*flag2;
  c=max=min=str;
  gets(c);
  
  do{  
	  flag1=flag2=c;
	  while(*c!=' '&&*c!='\0')c++;
      
	  if(longlen<c-flag1)
	  {longlen=c-flag1;max=flag1;}
	  if(shortlen>c-flag2)
	  {shortlen=c-flag2;min=flag2;}
	  c++;
  }
  while(*(c-1)!='\0');

 for(i=1;i<=longlen;i++)
  printf("%c",*max++);
 printf("\n");

 for(i=1;i<=shortlen;i++)
	 printf("%c",*min++);
}
int main()
{
	char e[256],all[1000],words[50][256];
	int i,j,l,len,n=0,k=0;
	gets(all);
	len=strlen(all);
	for(i=0;i<len;i++)
	{
		if(all[i]==' ')
		{
			all[i]='\0';
			strcpy(words[n],(all+k));
			n++;
			k=i+1;
		}
	}
	strcpy(words[n],(all+k));
	for(j=0;j<n;j++)
	{
		if(strlen(words[j])>=strlen(words[j+1]))
		{
			strcpy(e,words[j+1]);
			strcpy(words[j+1],words[j]);
			strcpy(words[j],e);
		}
	}
	printf("%s\n",words[n]);
	for(l=0;l<n;l++)
	{
		if(strlen(words[l])<=strlen(words[l+1]))
		{
			strcpy(e,words[l+1]);
			strcpy(words[l+1],words[l]);
			strcpy(words[l],e);
		}
	}
	printf("%s\n",words[n]);
	return 0;
}
int main()
{
char str[100];

gets(str);
int maxlen=0;
int minlen=9999;
char*maxstr=0;
char*minstr=0;
char*p=strtok(str," ");
while(p)
{
int len=strlen(p);
if(len>maxlen)
{
maxlen=len;
maxstr=p;
}
if(len<minlen)
{
minlen=len;
minstr=p;
}
p=strtok(0," ");
}
printf("%s\n",maxstr);
printf("%s\n",minstr);
return 0;
}
int main()
{
    char s[10000];
    int max_end,max_len=0,min_end,min_len=10000,l,i,j,k=0;
    gets(s);
    l=strlen(s);
    for(i=0;i<=l;i++)
        if(s[i]==' '||s[i]==','||i==l)
        {
            if(k<min_len&&k>0) {min_len=k;min_end=i;};
            if(k>max_len) {max_len=k;max_end=i;};
            k=0;
        }
        else k++;
    //printf("%d %d %d %d\n",max_end,max_len,min_end,min_len);
    for(i=max_end-max_len;i<max_end;i++) printf("%c",s[i]);
    printf("\n");
    for(i=min_end-min_len;i<min_end;i++) printf("%c",s[i]);
}
int main(){
	char str[2000],s[200][200];
	gets(str);
	int len=strlen(str);
	int i=0,k=0,a[200],max=0,min=2000,min1,max1,j,l=0;
	while(i<len){
		if(str[i]!=' '){
			for(j=i;j<len&&str[j]!=' ';j++){
				s[k][l]=str[j];
				l++;
			}s[k][l]='\0';
			i=j+1;
			k++;
			l=0;
		}
		else i++;
	}
	for(i=0;i<k;i++){
		a[i]= strlen(s[i]);
		if(a[i]>max){max=a[i];max1=i;}
		if(a[i]<min){min=a[i];min1=i;}
	}
	printf("%s\n%s",s[max1],s[min1]);

	
	return 0;
}
int main(){
	int max(int a[],int n);
	int min(int a[],int n);
	char s[200][50];
	int n,i,j,b[200];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%s",s[i]);
		b[i]=strlen(s[i]);
	}
	for(i=0;i<n;i++){
		if(b[i]==max(b,n)){
			printf("%s\n",s[i]);
			break;
		}
	}
	for(i=0;i<n;i++){
		if(b[i]==min(b,n)){
			printf("%s\n",s[i]);
			break;
		}
	}
	return 0;
}

int max(int a[],int n){
	int t=a[0],i;
	for(i=0;i<n;i++){
		if(t<a[i]) t=a[i];
	}
	return t;
}

int min(int a[],int n){
	int t=a[0],i;
	for(i=0;i<n;i++){
		if(t>a[i]) t=a[i];
	}
	return t;
}
int main(){
	int i,k,index,max,min;
	char juzi[2500],word[50][50];
	gets(juzi);
	index=0;
	for(i=0;;i++)
	{
		for(k=0;;)
		{
			if(juzi[index]!=' '&&juzi[index]!='\0')
			{
				word[i][k]=juzi[index];
				index++;
				k++;
			}
			else
			{
				word[i][k]='\0';
				index++;
				k++;
				break;
			}
		}
		if(juzi[index-1]==0)
		{
			break;
		}
	}
	max=0;
	min=0;
	for(k=1;k<=i;k++)
	{
		if(strlen(word[k])>strlen(word[max]))
		{
			max=k;
		}
		if(strlen(word[k])<strlen(word[min]))
		{
			min=k;
		}
	}
	printf("%s\n%s",word[max],word[min]);
	return 0;
}
void main()
{
char a[6600],c,a1[300][210],d[401];
int i=0,j,n,k=0,x,y,z,b[300]={0};
c=getchar();
while(c!='\n')
{
	
	if(c==' '||c==',')
    {a1[i][k]='\0';k=0;i++;}
	else {b[i]++;a1[i][k]=c;k++;}
    c=getchar();




}
a1[i][k]='\0';

n=i;k=0;

if(b[0]==b[1]&&b[1]==b[2]&&b[2]==b[3])printf("%s\n%s\n",a1,a1);
else{
for(j=0;j<n;j++)
if(b[j]>=b[j+1]){z=b[j];b[j]=b[j+1];b[j+1]=z;strcpy(d,a1[j]);strcpy(a1[j],a1[j+1]);strcpy(a1[j+1],d);}
printf("%s\n",a1[n]);
for(j=0;j<n;j++)
if(b[j]<=b[j+1]&&b[j]>0||b[j+1]==0){z=b[j];b[j]=b[j+1];b[j+1]=z;strcpy(d,a1[j]);strcpy(a1[j],a1[j+1]);strcpy(a1[j+1],d);}
printf("%s\n",a1[n]);
}

}
int main()
{
	char sentence[500];
	int i,j=0,len,kong=0,shuliang,num[50]={0},max=0,k,r,min=100,qian1=0,qian2=0;
	gets(sentence);
	len=strlen(sentence);
	for(i=0;i<len;i++)
	{
		if(sentence[i]==' ')
			kong++;
	}
	shuliang=kong+1;
	
	for(i=0;i<shuliang;i++)
	{
		for(;j<len;j++)
		{
			if(sentence[j]!=' ')
				num[i]++;
			else
			{
				j++;
				break;
			}
		}
	}
	for(i=0;i<shuliang;i++)
	{
		if(num[i]>max)
		{
			k=i;
			max=num[i];
		}
		if(num[i]<min)
		{
			r=i;
			min=num[i];
		}
	}
	for(i=0;i<k;i++)
		qian1=qian1+num[i];
	for(i=0;i<r;i++)
		qian2=qian2+num[i];
	for(i=qian1+k;i<num[k]+qian1+k;i++)
		printf("%c",sentence[i]);
	printf("\n");
	for(i=qian2+r;i<num[r]+qian2+r;i++)
		printf("%c",sentence[i]);
	printf("\n");
	return 0;
}
void main()
{
	int i,l[100],max,n,min;
	char c[100][30],c1[30],c2[30];
	/*scanf("%d",&n);
	for(i=0;i<n;i++)
	{scanf("%s",c[i]);l[i]=strlen(c[i]);}*/
	for(i=0;;i++)
	{
		if(scanf("%s",c[i])==EOF) break;
		l[i]=strlen(c[i]);
	}
	n=i;
	max=l[0];strcpy(c1,c[0]);
	for(i=0;i<n;i++)
	{
		if(l[i]>max) {max=l[i];strcpy(c1,c[i]);}
	}
	min=l[0];strcpy(c2,c[0]);
	for(i=0;i<n;i++)
	{
		if(l[i]<min) {min=l[i];strcpy(c2,c[i]);}
	}
	printf("%s\n",c1);
	printf("%s\n",c2);
}
int main()
{
    /* 50 seem to short,
     * when the input > 50 chars, your program will exit abnormaly,
     * result a no output. This is error tips you get on web.
     */
    //char s[50]={0};
    char s[1000] = {0};

    gets(s);
    int n,m,b=1,i,j,k=0;
    n=strlen(s);
    char a[50][50]={0};
    for(i=0;k<n;i++){ /* word i++ */
        for(j=0;b=0 || k<n;j++){ /* word[i] j++ */
            m=i;
            k++;
            if(s[k-1]==' ')
            {b=0;}
            if(b!=0){
                a[i][j]=s[k-1];
            }
            else
                break;
        }
    }
    int c=0,d=0;
    /* small change: m-1 -> m. */
    for(i=0;i<m;i++)
    {
        /*
         * Get the max & min length.
         */
        if(strlen(a[c])<strlen(a[i+1]))
            c=i+1;
        if(strlen(a[d])>strlen(a[i+1]))
            d=i+1;
    }
    printf("%s\n%s\n",a[c],a[d]);
    return 0;
}
//********************************************************
//*  ???:1.cpp                                        *
//*  ??????    1200012948                          *
//*  ????: 2012 12 24                                *
//*  ????:??????                               *
//********************************************************
int main()
{
	char str[3000];
	char *longest = NULL, *shortest = NULL;  //??????????????
	int max = 0, min = 9999, i, k = 0;
	cin.getline(str, 3000);
	int len = strlen(str);
	for(i = 0; i <= len; i++)
	{
		if(str[i] != ' ' && str[i] != ',' && str[i] != '\0')
		{
			k++;
		}
		else
		{
			if(k > max)
			{
				max = k;
				longest = str + i;   //?????????????
			}
			if(k < min)
			{
				min = k;
				shortest = str + i;
			}
			if(str[i] == ' ' || str[i] == '\0')
			    k = 0;
		}
	}
	for(i = 0; i < max; i++)
	{
		cout << *(longest - max);
		longest++;
	}
	cout << endl;
	for(i = 0; i < min; i++)
		{
			cout << *(shortest - min);
			shortest++;
		}
		cout << endl;
	return 0;
}
void main()
{
	char a[50][50];
	int min,b[50],i=0,max=0,*p,j;
	while(scanf("%s",a[i])!=EOF)
	{b[i]=strlen(a[i]);i++;}
	for(j=0,min=b[0];j<i;j++)
	{
		if(b[j]>max)
			max=b[j];
		if(b[j]<min)
			min=b[j];
	}
	for(j=0;j<i;j++)
		if(b[j]==max)
		{printf("%s\n",a[j]);break;}
		for(j=0;j<i;j++)
		if(b[j]==min)
		{printf("%s",a[j]);break;}
}
int main()
{
	char a[200],b[200],c[200];
	int n,i,max,min;
    scanf("%d",&n);
	scanf("%s",a);
		strcpy(b,a);
		strcpy(c,a);
	for(i=0;i<n-1;i++)
	{
	  scanf("%s",a);
	  if(strlen(a)>strlen(b))
		  strcpy(b,a);
	  if(strlen(a)<strlen(c))
		  strcpy(c,a);
	}
    printf("%s\n",b);
	printf("%s\n",c);
	return 0;
}
const int N = 1000;
int main() {
    char s[N],max[N],min[N];
    int max_len = 0;
    int min_len = N;
    int n;
    scanf("%d",&n);
    while (n-->0) {
        scanf("%s",s);
        int len = strlen(s);
        if ( len > max_len) {
            max_len = len;
            strcpy(max,s);
        }
        if ( len < min_len) {
            min_len = len;
            strcpy(min,s);
        }
    }
    printf("%s\n%s\n",max,min );
}
void main()
{
	char a[1000],b[1000][50];
	int n=0,p,i,j,s,m;
	gets(a);
	s=strlen(a);
	for(i=0;i<=s-1;)
	{
		for(j=i,m=0;a[j]!=' '&&j<=s-1;j++,m++)
			b[n][m]=a[j];//?????????
		b[n][m]='\0';//?????!!!
		n++;//?????
		i=j;
        if(a[i]==' ')
			i++;
	}
	for(i=0;i<=n-1;i++)
	{
		for(p=j=0;j<=n-1;j++)
		{
			if(strlen(b[i])>=strlen(b[j])) 
			p++;
		}
	    if(p==n) 
		{
		    printf("%s\n",b[i]);
		    break;
		}
	}
    for(i=0;i<=n-1;i++)
	{
		for(p=j=0;j<=n-1;j++)
		{
			if(strlen(b[i])<=strlen(b[j]))
			p++;
		}
	    if(p==n) 
		{
		    printf("%s\n",b[i]);
		    break;
		}
	}
}
int main(){
    int t,i=0,j=0,len,max,min;
	char str[6000],str2[200][30];
    gets(str);
	len=strlen(str);
	for(t=0;t<len;t++){
		if((str[t]!=' ')&&(str[t]!=',')){
		   str2[i][j]=str[t];
		   j++;
		}
		else{
		   str2[i][j]='\0';
		   i++;
		   j=0;
		}
	}
    str2[i][j]='\0';
	max=0;
	for(j=0;j<i+1;j++){
		if(strlen(str2[j])>strlen(str2[max])){
		   max=j;
		}
	}
	printf("%s\n",str2[max]);
    min=0;
    for(j=0;j<i+1;j++){
		if((strlen(str2[j])<strlen(str2[min]))&&(strlen(str2[j])!=0)){
		   min=j;
		}
	}
	printf("%s",str2[min]);
return 0;
}
void main()
{
	int n,i,j,k;
	char a[1000][50];
	int b[1000];
	int *p;
	char (*p1)[50];
	scanf("%d",&n);
	p=b;
	p1=a;
	for(i=0;i<n;i++)
	{
		scanf("%s",*(p1+i));
		*(p+i)=strlen(*(p1+i));
	}
	for(i=1;i<n;i++)
	{
		for(j=0;j<n-i;j++)
		{
			if(*(p+j)>*(p+j+1))
			{
				k=*(p+j);
				*(p+j)=*(p+j+1);
				*(p+j+1)=k;
			}
		}
	}
	for(i=0;i<n;i++)
	{
		k=strlen(*(p1+i));
		if(k==*(p+n-1)){printf("%s\n",*(p1+i));break;}
	}
	for(i=0;i<n;i++)
	{
		k=strlen(*(p1+i));
		if(k==*(p+0)){printf("%s",*(p1+i));break;}
	}
}
void main()
{char s[10000];int i,j,m=0,n=0,l;
gets(s);l=strlen(s);
for(i=0;i<=l-1;i++)
{if(((s[i]>='a')&&(s[i]<='z'))||((s[i]>='A')&&(s[i]<='Z'))){
	for(j=i;j<=l-1;j++){if(((s[j]>='a')&&(s[j]<='z'))||((s[j]>='A')&&(s[j]<='Z'))){if(j!=l-1)continue;
	else{if((j-i+1)>(m-n)){m=j+1;n=i;}i=j;break;}}
    else {if((j-i)>(m-n)){m=j;n=i;}i=j-1;break;}}}}
for(i=n;i<=m-1;i++)printf("%c",s[i]);printf("\n");
m=100;n=0;
for(i=0;i<=l-1;i++)
{if(((s[i]>='a')&&(s[i]<='z'))||((s[i]>='A')&&(s[i]<='Z'))){
	for(j=i;j<=l-1;j++){if(((s[j]>='a')&&(s[j]<='z'))||((s[j]>='A')&&(s[j]<='Z'))){if(j!=l-1)continue;
	else{if((j-i+1)<(m-n)){m=j+1;n=i;}i=j;break;}}
    else {if((j-i)<(m-n)){m=j;n=i;}i=j-1;break;}}}}
for(i=n;i<=m-1;i++)printf("%c",s[i]);printf("\n");

}
int main()
{
	int b,c,n,i;
	char d[200],e[232],f[232];
	int max=0,min=100;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%s",d);
		b=strlen(d);
		if(b>max)
		{
			max=b;
			strcpy(e,d);
		}
		if(b<min)
		{
			min=b;
			strcpy(f,d);
		}
	}
	printf("%s\n",e);
	printf("%s\n",f);
	return 0;
}
int main()
{
	char s[600];
	cin.getline(s, 500, '\n');
	int l = 0, i = 0, j, max = 0, min = 10, mm;
	l = strlen(s);
	s[l] = ' ';
	s[l + 1] = '\0';
	while(s[i] != '\0')
	{
		j = i;
		while(s[j] != ',' && s[j] != ' ')
			j++;
		if (j - i > max)
		{	
			max = j - i;
			mm = i;
		}
		i++;
	}
	for(i = mm; i < mm + max; i++)
		cout << s[i];
	cout << endl;
	i = 0;
	while(s[i] != '\0')
	{
		if (i > 0)
		{
			if (s[i - 1] == ' ' || s[i - 1] == ',')
				;
			else
			{
				i++;
				continue;
			}
		}
		j = i;
		while(s[j] != ',' && s[j] != ' ')
			j++;
		if (j - i < min && j - i != 0)
		{	
			min = j - i;
			mm = i;
		}
		i++;
	}
	for(i = mm; i < mm + min; i++)
		cout << s[i];
	return 0;
}
int main(){
	char sz[1000],m[50][50]={'\0'};
	int array[50];
	int i,j,p=0,w=0,max=0,min=100,a,b;
	gets(sz);
	for(i=0;;i++){
		if(sz[i]==' '){
			array[p]=w;
			w=0;
			p++;
		}	
		else if(sz[i]==NULL){
			array[p]=w;
			break;
		}
		else{
			m[p][w]=sz[i];
			w++;
		}
	}
	for(i=0;i<=p;i++){
	//	printf("%d %s\n",array[i],m[i]);
	}
	for(a=0;a<=p;a++){
		if(array[a]<min){
			min=array[a];
		}
	}
//	printf("%d\n",min);
	for(b=0;b<=p;b++){
		if(array[b]>max){
			max=array[b];
		}
	}
//	printf("%d\n",max);
	for(b=0;b<=p;b++){
		if(array[b]==max){
			puts(m[b]);
			break;
		}
	}
	for(a=0;a<=p;a++){
		if(array[a]==min){
			puts(m[a]);
			break;
		}
	}
	return 0;
}
int main(){
	char dc[10000];
	gets(dc);
	char fz[200][50];
	int len=strlen(dc);
	int i,k=0,j=0,l=0,num=1,cd[200]={0};
	for(i=0;i<len;i++){
		if(dc[i]!=32){
			fz[k][j]=dc[i];
			j++;
			cd[k]++;
		}
		else{
			num++;
			k++;
			j=0;
		}
	}
	char max[50],min[50];
    strcpy(max,fz[0]);
    strcpy(min,fz[0]);
	int zc=cd[0];
	int zd=cd[0];
	for(k=0;k<num;k++){
		if(cd[k]>zc){
			strcpy(max,fz[k]);
			zc=cd[k];
		}
		if(cd[k]<zd){
			strcpy(min,fz[k]);
			zd=cd[k];
		}

		if((cd[k]==zc)&&(cd[k]==zd)){
			l++;
		}
	}
	if(l!=num){
        printf("%s\n%s\n",max,min);
	}
	else{
	    printf("%s\n%s\n",fz[0],fz[0]);
	}
	return 0;
}
main()
{   int da,i,j,x,y,k,len,n,dan[201],max,min;
    char s[10000],a[201][50];
       gets(s);
       for(i=0;i<201;i++)
       dan[i]=0;
       i=0;
       len=strlen(s);
       while(i<len){
       if(s[i]!=' '&&s[i]!=',')
       {   a[0][i]=s[i];i++;
       }
       else break;
	   }
	   dan[0]=strlen(a[0]);
       x=i+1;j=1;y=0;
       while(x<len)
       {  if(s[x]!=' '&&s[x]!=',')
           {  dan[j]++;a[j][y]=s[x];y++;x++;
           } 
		   
            if(s[x]==','&&s[x+1]==' '){x=x+2;j++;y=0;
           }
           if((s[x]==' '||s[x]==',')&&(s[x+1]!=' '&&s[x+1]!=',')){x++;j++;y=0;
           }
       }
      k=j;
     
     max=dan[0];min=dan[0];
       for(j=1;j<=k;j++)
      if(dan[j]>max)
       max=dan[j];
     
       for(j=1;j<=k;j++)
       
       if(dan[j]<min)
       min=dan[j];
     
     if(k==1||max==min)
    {
    puts(a[0]);puts(a[0]);}
  
    else if(max>min){
     for(i=0;i<=k;i++)
     if(dan[i]==max) 
	 {
     puts(a[i]);break;
	 }
	 
     for(i=0;i<=k;i++)
     if(dan[i]==min) 
	 {
     puts(a[i]);break;
     }
}
}
char str2[1000]={0};
void k(char str[])
{char str1[100][20]={{0}};int i=0,j,k,l=0;
for(j=0;str[j]!=0;j++)
{for(i=j,k=0;str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z'||str[i]==39;i++,k++)
str1[l][k]=str[i];
j=i;l++;}
int max,min;
for(i=0,min=0;i<l;i++)
if(strlen(str1[min])>strlen(str1[i]))min=i;
strcpy(str2,str1[min]);
for(i=0,max=0;i<l;i++)
if(strlen(str1[max])<strlen(str1[i]))max=i;
strcpy(str,str1[max]);
}
int main()
{char str[1000]={0};
gets(str);
k(str);
puts(str);
puts(str2);
return 0;}
void main()
{
	char str[1000],l[20],s[20],a[20];
	int i,j,m,max=0,min=100;
	gets(str);
	m=strlen(str);
	for(i=0;i<m;i++)
	{
		for(j=0;((str[i]<='z')&&(str[i]>='a'))||((str[i]<='Z')&&(str[i]>='A'));i++,j++)
			a[j]=str[i];
		a[j]='\0';
		if(strlen(a)>max)
		{
			strcpy(l,a);
			max=strlen(a);
		}
		if(strlen(a)<min)
		{
			strcpy(s,a);
			min=strlen(a);
		}
	}
	printf("%s\n%s\n",l,s);
}
int main()
{
    int i,n,x[250]={0},min=100,max=0;
    char s[250][50]={0};
    
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
          scanf("%s",*(s+i));              
    }
    
    for(i=0;i<n;i++)
    {
        *(x+i)=strlen(*(s+i));               
    }
    
    for(i=0;i<n;i++)
    {
        if(*(x+i)>max)
            max=*(x+i); 
        if(*(x+i)<min)
            min=*(x+i);               
    }
    
    for(i=0;i<n;i++)
    {
        if(*(x+i)==max)
        {
            printf("%s\n",*(s+i)); 
            break;              
        }                
    }
    
    for(i=0;i<n;i++)
    {
        if(*(x+i)==min)
        {
            printf("%s\n",*(s+i)); 
            break;              
        }                
    }
    
    
    
    
    
    
    scanf("%d",&n);
    return 0;    
}
void main()
{
	char word[50][20];
	int max,min,c,total,flag,i;
	flag=0;
	i=0;
	while ((c=scanf("%s",word[i]))==1) i++; //recite the usage of "scanf", see book p.376
	total=i;
	max=min=0;
	for (i=0;i<=total-1;i++)
	{
		if (strlen(word[i])>strlen(word[max])) max=i;
		if (strlen(word[i])<strlen(word[min])) min=i;
	}
	printf("%s\n%s",word[max],word[min]);
}
int main(){
  char ans1[100],ans2[100],s1[100],s2[100];
  memset(ans1,0,sizeof(ans1));
  memset(ans2,0,sizeof(ans2));
  ans1[0]='\0';
  ans2[0]='\0';
  while (scanf("%s",s1)!=EOF){
    int i,j,l=strlen(s1);
    if (strlen(ans1)==0) memcpy(ans1,s1,sizeof(s1));
    for (i=0;i<l;i++)
      if (s1[i]==','){
        s1[i]='\0';
        for (j=i+1;j<l;j++) 
          s2[j-i-1]=s1[j];
        s2[l-i-1]='\0';
        break;
      }
    l=strlen(s1);
    if (l<strlen(ans1)) memcpy(ans1,s1,sizeof(s1));
    if (l>strlen(ans2)) memcpy(ans2,s1,sizeof(s1));
    l=strlen(s2);
    if (l){
      if (l<strlen(ans1)) memcpy(ans1,s2,sizeof(s2));
      if (l>strlen(ans2)) memcpy(ans2,s2,sizeof(s2));
    }
  }
  printf("%s\n%s\n",ans2,ans1);
}
int main()
{
    struct dc
    {
           char a[100];
           int len;
    }dc[200],*ps;
    ps=dc;
    int n,max=0,min=500,i;
    char *pmax,*pmin;
    scanf("%d",&n);
    for(i=0;i<n;i++,ps++)
    {
                    scanf("%s",ps->a);
                    ps->len=strlen(ps->a);
                    if(ps->len>max)
                    {
                                    max=ps->len;
                                    pmax=ps->a;
                    }
                    if(ps->len<min)
                    {
                                    min=ps->len;
                                    pmin=ps->a;
                    }
    }
    printf("%s\n%s",pmax,pmin);
    return 0; 
}
int main()
{
	int max = 0, min = 100;
	int pos1, pos2;
	char words[50][100];
	int len[50];
	int i = 0,j;

	while (scanf("%s", words[i]) != EOF) {
		len[i] = strlen(words[i]);
		i++;
	}

	for (j =0; j < i; j++) {
		if (len[j] < min) {
			min = len[j];
			pos1 = j;
		}
		if (len[j] > max) {
			max = len[j];
			pos2 = j;
		}
	}

	printf("%s\n%s\n", words[pos2], words[pos1]);

	return 0;
}
int main()
{
	int i,k,j;
	char danci[100][100]={'0'},zfc[3000];
	gets(zfc);
	for(i=0,k=0,j=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++;
	char zuichang[100],zuiduan[100];
	strcpy(zuichang,danci[0]);
	strcpy(zuiduan,danci[0]);
	for(i=0;i<j-1;i++){
		if(strlen(zuichang)<strlen(danci[i+1])){
			strcpy(zuichang,danci[i+1]);
		}
		if(strlen(zuiduan)>strlen(danci[i+1])){
			strcpy(zuiduan,danci[i+1]);
		}
	}
	printf("%s\n",zuichang);
	printf("%s\n",zuiduan);
	return 0;
}
int main()
{
	char word[50][30];
	int length[50],i,j,wordnum,p,maxlength,minlength,max,min;
	for(i=0;i<=49;i++)
	{
		for(j=0;j<=11;j++) word[i][j]='\0';
	}
	for(i=0;i<=49;i++)
	{
		scanf("%s",word[i]);
		if(getchar()=='\n')
		{
			wordnum=i;
			break;
		}
	}
	for(i=0;i<=wordnum;i++) {length[i]=strlen(word[i]); }
	max=0;min=0;maxlength=length[0];minlength=length[0];
	for(i=0;i<=wordnum;i++)
	{
		if(length[i]>maxlength)
		{
			max=i;
			maxlength=length[i];
		}
		if(length[i]<minlength)
		{
			min=i;
			minlength=length[i];
		}
	}
	printf("%s\n%s\n",word[max],word[min]);
	return 0;
}
int main()
{
	char s[1000];
	char words[100][100];
	int i,n,k,j=0,g=0;
	gets(s);
	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++;
	int L[100],max=strlen(words[0]);
	for(i=1;i<n;i++)
	{
	    L[i]=strlen(words[i]);
		if(L[i]>max)
		{
			max=L[i];
		    j=i;
		}
	}
	int M[100],min=strlen(words[0]);
	for(i=1;i<n;i++)
	{
	    M[i]=strlen(words[i]);
		if(M[i]<min)
		{
			min=M[i];
			g=i;
		}
	}
    printf("%s\n%s",words[j],words[g]);
	return 0;
}
void main()
{
	char a[5000],b[50][100];
	int c[50]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},i,j,k=0,t,max=0,min=0,sum=0;
	for(i=0;i<5000;i=i+1)
		a[i]='\0';/*????????? ??GETS????????\0*/
	gets(a);
	for(i=0;i<strlen(a);)
	{
		for(j=0;a[j+sum+k]!=' ' && a[j+sum+k]!='\0';j++)
	{
		c[k]=c[k]+1;
		b[k][j]=a[j+sum+k];/*??A??????????*/
		i++;
	}
		b[k][j]='\0';
	    k++;
		i++;
		sum=j+sum;
	}
	max=c[0];
	min=c[0];
	for(t=1;t<k;t++)
	{
		if(c[t]>max)
			max=c[t];
	}
	for(t=1;t<k;t++)
	{
		if(c[t]<min)
			min=c[t];
	}
	for(t=0;t<k;t++)
		if(max==c[t])
		{
	       printf("%s\n",b[t]);
		   break;
		}
	    
	
		for(t=0;t<k;t++)
			if(min==c[t])
			{
				printf("%s\n",b[t]);
		        break;
			}
}
char s[1000],ss[1000],sl[1000];
int max,min;

int main()
{
    int t;
    cin>>s;
    max=min=strlen(s);
    strcpy(ss,s);
    strcpy(sl,s);
    while (cin>>s)
    {
          t=strlen(s);
          if (t>max)
          {
                    max=t;
                    strcpy(sl,s);
          }
          if (t<min)
          {
                    min=t;
                    strcpy(ss,s);
          }
    }
    cout<<sl<<endl<<ss<<endl;
    cin>>s;
    return 0;
}
int m=0,n;
void main()
{
	char a[500],b[50][20];
	int i,j,k;
	unsigned max=0,min;
	gets(a);
	for(i=0;a[i]!='\0';i++)
	{
		if(a[i]!=' ')
		{
			n=0;
			for(j=i;a[j]!=' '&&a[j]!='\0';j++,n++)
			{ b[m][n]=a[j];a[j]=' ';}
			b[m][n]='\0';
			m++;
		}
		else continue;
	}
	min=strlen(b[0]);
	for(i=0;i<m;i++)
	{
		if(strlen(b[i])>max)
			max=strlen(b[i]);
		if(strlen(b[i])<min)
			min=strlen(b[i]);
	}
	for(i=0;i<m;i++)
		if(max==strlen(b[i]))
		{
			printf("%s\n",b[i]);
			break;
		}
    for(i=0;i<m;i++)
		if(min==strlen(b[i]))
		{
			printf("%s\n",b[i]);
			break;
		}
}