semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
   char str[LEN];
   int i,wordlen=0,maxlen=0,minlen=30,iofmax,iofmin;
   
   gets(str);
   for(i=0;;i++)
   {
      if(str[i]!=' '&&str[i]!='\0') wordlen++;
      else
      {
        if(wordlen>maxlen)
        {
           maxlen=wordlen;
           iofmax=i-wordlen;
        }
        if(wordlen<minlen)
        {
           minlen=wordlen;
           iofmin=i-wordlen;
        }
        wordlen=0;
      }
      if(str[i]=='\0') break;
   }
   
   for(i=iofmax;i<iofmax+maxlen;i++) printf("%c",str[i]);
   printf("\n");
   for(i=iofmin;i<iofmin+minlen;i++) printf("%c",str[i]);
   printf("\n");

  return 0;
}
int main()
{
	char b[200][20]={0};
	int i=0,l,n,p,q,max,min,c[200]={0},k;
	scanf("%d",&k);while(scanf("%s",b[i])!=EOF){
	l=strlen(b[i]);
	if(b[i][l-1]==',')b[i][--l]=0;
	c[i]=l;i++;}n=i-1;
	p=q=0;max=min=c[0];
	for(i=1;i<=n;i++)
		if(c[i]>max){max=c[i];p=i;}
		else if(c[i]<min){min=c[i];q=i;}
	puts(b[p]);
	puts(b[q]);
}
int main()
{
	char allwords[WORD*LENGTH];

	int i;
	//int minPos = 0, maxPos = 0, tmpPos = 0;
	char *minP, *maxP, *tmpP;
	int minLen = LENGTH, maxLen = 0, tmpLen = 0;

	gets(allwords);

	int len = strlen(allwords);

    minP = &allwords[0];
	maxP = &allwords[0];
	tmpP = &allwords[0];

	for(i = 0; i < len + 1; i++)
	{
		if(allwords[i] == ' ' || allwords[i] == '\0')
		{
			if(tmpLen > maxLen)
			{
				maxP = tmpP;
				maxLen = tmpLen;
			}
			if(tmpLen < minLen)
			{
				minP = tmpP;
				minLen = tmpLen;
			}
			allwords[i] = '\0';
			tmpLen = 0;
			tmpP = &allwords[i + 1];
		}
		else
		{
			tmpLen++;
		}
	}

	printf("%s\n", maxP);
	printf("%s\n", minP);


	return 0;
}
int main()
{
	char a[200][20],c;
	int b[200],i=0,j=0,n,max,min,s,t;
	while((c=getchar())!=EOF)
	    {if(c==' '||c==',')
	{a[i][j]=0;b[i]=j;
	i++;j=0;}
		else a[i][j++]=c;}
    n=i;a[i][--j]=0;b[i]=j;
	
	s=t=0;max=min=b[0];
	for(i=1;i<=n;i++)
		if(b[i]>max){max=b[i];t=i;}
		else if(b[i]<min&&b[i]>0){min=b[i];s=i;}
    puts(a[t]);
	puts(a[s]);
}
void main(void)
{
	char s[4000];
	gets(s);

	char *start[200];
	start[0]=s;
	int l=0,n=1;
	while(s[l]!=0)
	{
		if(s[l]==','||s[l]==' ')
		{
			s[l]=0;
			if(s[l+1]!=','&&s[l+1]!=' ')
				start[n++]=s+l+1;
		}

		l++;
	}

	int len[200],i,max=0,min=0;
	for(i=0;i<=n-1;i++)
	{
		len[i]=strlen(start[i]);

		if(len[max]<len[i]) max=i;
		else if(len[min]>len[i]) min=i;
	}

	puts(start[max]);
	puts(start[min]);
}
int main ()
{
	char word[1000];
	gets(word);
	int z=0,y=0;
	char val[50][20]={0},m[50][20]={0};
	int i,n[50],x[50];
	
	int g;
	g=strlen(word);
	for(i=0;i<g;i++){
		if(word[i]==' '||word[i]=='\0'){
		    z++;
			y=0;
		   }
		if(word[i]!=' '){
			val[z][y]=word[i];
			y++;
			}
	}
	for(i=0;i<z+1;i++){
		n[i]=strlen(val[i]);
		x[i]=n[i];
		strcpy(m[i],val[i]);
	}
	for(i=0;i<z+1;i++){
		if(n[i]>=n[i+1]){
			n[i+1]=n[i];
		    strcpy(val[i+1],val[i]);
		}
	}
	for(i=0;i<z+1;i++){
		if(x[i]<=x[i+1]){
			x[i+1]=x[i];
			strcpy(m[i+1],m[i]);
		}
	}   
	puts(val[z]);
	puts(m[z]);
	return 0;
}
int main()
{
	char a[500];
	char b[50][500];
	int  e,l,s;
	int i,n,m,sum;
	int len[50];
	gets(a);
	n=0;
	i=0;
	m=0;
	sum=0;
	while(a[n]!='\0')
	{
		if(a[n]!=' ')
		{
			b[i][m]=a[n];
			m+=1;
			n+=1;
		}else
		{
			b[i][m]='\0';
			m=0;
			n+=1;
			i+=1;
			sum+=1;
		}
	}
	b[i][m]='\0';

	for(i=0;i<=sum;i++)
	{
		 len[i]=strlen(b[i]);
	} 

	for(i=sum;i>0;i--)
	{
		for(m=0;m<i;m++)
		{
			if((len[m])>(len[m+1]))
			{
			   	e=len[m];
				len[m]=len[m+1];
				len[m+1]=e;
			}
		}
	}
	l=len[sum];
	s=len[0];

    for(i=0;i<=sum;i++)
	{

		if(strlen(b[i])==l)
		{
	        printf("%s\n",b[i]);
			break;
		}
	}
	for(i=0;i<=sum;i++)
	{
		if((strlen(b[i]))==s)
		{
        	printf("%s\n",b[i]);
			break;
		}
	}
	return 0;
}
int main(int argc, char *argv[])
{
  int n,i,j,l[50],max,min;
  char sen[1000],w[50][20];
  gets(sen);
  n=strlen(sen);
  for(i=0;i<50;i++)
  {l[i]=0;
  for(j=0;j<20;j++)
  w[i][j]='\0';}
  j=0;
  for(i=0;i<n;i++)
  {
       if(sen[i]!=' ')
       {
            w[j][l[j]]=sen[i];
            l[j]++;
       }
       else
       {
           j++;
       }
  }
  max=l[0];
  min=l[0];
  for(i=0;i<=j;i++)
  {
       if(max<l[i])
       {
           max=l[i];
       }
       if(min>l[i])
       {
           min=l[i];
       }
  }
  for(i=0;i<=j;i++)
  {
       if(l[i]==max)
       {
            printf("%s\n",w[i]);
            break;
       }
  }
  for(i=0;i<=j;i++)
  {
       if(l[i]==min)
       {
            printf("%s\n",w[i]);
            break;
       }
  }

  return 0;
}
int main()
{
	char word[1000]={'\0'};
	int length[100],point[100];
	int i,j,a,b,k,p,q;
	gets(word);
	k=strlen(word);
	a=0;
	b=0;
	point[1]=0;
	for(i=0;i<=k;i++)
	{
		if(word[i]==44||word[i]==32||word[i]=='\0')
		{
			b=b+1;
			length[b]=i-a;
			a=i+1;
			point[b+1]=i+1;
		}
	}
	a=length[1];
	p=1;
	for(i=2;i<=b;i++)
	{if(length[i]>a) {a=length[i];p=i;}}
	for(i=point[p];i<=point[p]+a-1;i++)
	{printf("%c",word[i]);}
	printf("\n");
	a=length[1];
	p=1;
	for(i=2;i<=b;i++)
	{if(length[i]<a&&length[i]!=0) {a=length[i];p=i;}}
	for(i=point[p];i<=point[p]+a-1;i++)
	{printf("%c",word[i]);}
	return 0;
}
int main()
{
    char s[1000],word[50][20];
    int i,j,k=0,t=0,max=0,min=0;
    gets(s);
    j=strlen(s);
    for (i=0;i<j;i++)
    if(!((s[i]>=65&&s[i]<=90)||(s[i]>=96&&s[i]<=122)||s[i]==39||s[i]==32)) s[i]='\0';
    for (i=0;s[i]!='\0';i++)
    {
        if (s[i]!=' '&&s[i]!='\0')
        word[k][t++]=s[i];
        else
        {
            word[k][t]='\0';
            k++;
            t=0;
        }
    }
    word[k][t]='\0';
    k++;
    for (i=0;i<k;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]);
}
void main()
{
	char a[200]={' '};
	int w[60]={0},q[60]={0},m,l,g,n,j,i,max,min,f;
	gets(a);
	g=strlen(a);
	a[g]=' ';a[g+1]='\0';
	q[0]=-1;
	for(i=1,j=1;i<200;i++)
	{
		if(a[i]==' '&&a[i-1]<='z'&&a[i-1]>='a')
		{q[j]=i;j++;}
		if(a[i]==' '&&a[i-1]<='Z'&&a[i-1]>='A')
		{q[j]=i;j++;}
	}
	l=j;
	for(m=0;m<l;m++)
		w[m]=q[m+1]-q[m];
	max=0;
    min=0;
	for(n=1;n<l;n++)
	{
		if(w[max]<w[n])max=n;
     	if(w[min]>w[n]&&w[n]>0)min=n;
	}
    f=q[max]+1;a[q[max+1]]='\0';printf("%s\n",&a[f]);
    f=q[min]+1;a[q[min+1]]='\0';printf("%s\n",&a[f]);
    return;
}
int main()
{
	char s[1000],c[100][50];
	int a[50],i,j=0,k=0;
	gets(s);
	for(i=0;s[i]!=0;i++)
	{
		if(s[i]!=' ')
		{
		c[j][k]=s[i];
		k++;
		}
		else {
			c[j][k+1]=0;
			k=0;
			j++;
		}
	}
	c[j][k+1]=0;
	int n=j;
	for(i=0;i<=n;i++)
	{
		for(j=0;j<=n-i-1;j++)
		{
			if(strlen(c[j])<=strlen(c[j+1]))
			{
				char p[50];
			strcpy(p,c[j]);
			strcpy(c[j],c[j+1]);
			strcpy(c[j+1],p);
			}
		}
	}
	cout<<c[0]<<endl<<c[n]<<endl;
	return 0;
}
int main(){
    char number[10000];
    gets(number);
    char danci[100][100];
    int max,min;
    int i,j,k=0,n=0;
    char chang[100],duan[100]="aaaaa";
    for(i=0;i<strlen(number);i++){
           if(number[i]!=' '&&number[i]!=0){
              danci[n][k]=number[i];
              k+=1;}
            else{
               n+=1;
               k=0;}
              
    }
    max=0;
    min=10;
    for(i=0;i<=n;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",chang,duan);
return 0;
}
//

int main()
{
	char sentence[2000], longist[40], shortist[20];
	int longnum = 0, shortnum = 200, thisnum = 0;
	int i = 0, l = 0, s = 0;
	cin.getline(sentence, 2000);
	do{
		thisnum = 0;
		while(sentence[i] != ',' && sentence[i] != ' ' && sentence[i] != '\0')
		{
			thisnum++;
			i++;
		}
		if (thisnum > longnum)
		{
			longnum = thisnum;
			l = i - thisnum;
		}
		if (thisnum < shortnum)
		{
			s = i - thisnum;
			shortnum = thisnum;
		}
		while(sentence[i] == ' ' || sentence[i] == ',')
			i++;
	}while(sentence[i] != '\0');
	for (i = l; i < l + longnum; i++)
		cout << sentence[i];
	cout << endl;
	for (i = s; i < s + shortnum; i++)
		cout << sentence[i];
	return 0;
}
int main(){
   char zfc[LEN],dc[N][LEN];
   int i,len,m,n,k;
   gets(zfc);
   len=strlen(zfc);
   m=0;
   n=0;
   for(i=0;i<len;i++){
       if(zfc[i]!=' '&&zfc[i]!=','){
           dc[m][n]=zfc[i];
           n++;
           }
       else{
            if(zfc[i+1]!=' '&&zfc[i+1]!=','){
            dc[m][n]='\0';
            m++;
            n=0;
            }
            }
            }
   dc[m][n]='\0';
   for(k=1;k<=m+1;k++){
      for(i=0;i<m+1-k;i++){
         if(strlen(dc[i+1])>strlen(dc[i])){
            char e[LEN];
            strcpy(e,dc[i+1]);
            strcpy(dc[i+1],dc[i]);
            strcpy(dc[i],e);
            }
           }
            }
   printf("%s\n",dc[0]);
   for(k=1;k<=m+1;k++){
      for(i=0;i<m+1-k;i++){
        if(strlen(dc[i+1])<strlen(dc[i])){
            char e[LEN];
          strcpy(e,dc[i+1]);
            strcpy(dc[i+1],dc[i]);
            strcpy(dc[i],e);
           }
            }
           }
  printf("%s\n",dc[0]);
    return 0;
}
int main()
{
char s[3000];
int i=0,j=0,c=0,m=0,n=0,d=10;
gets(s);
while(s[i]!='\0')//?????
{
     while(s[i]!=' '&&s[i]!='\0')
{
        j++;
   i++;
}//?????????
if(j>c)//???????
{
m=i-j;//??????
c=j;
}
if(j<d)//???????
{
n=i-j;//??????
d=j;
}
     while(s[i]==' ')
  i++;
   
j=0;
}
while(s[m]!=' '&&s[m]!='\0')//?????????????????????????????????
{
printf("%c",s[m]);
m++;
}
printf("\n");
while(s[n]!=' '&&s[n]!='\0')//?????????????????????????????????
{
printf("%c",s[n]);
n++;
}
printf("\n");
}
main()
{
	char s[2000];
	int i,max=0,min=100,a,b,l,k=0;
	gets(s);
	l=strlen(s);
	for(i=0;i<l;i++)
	{
		if(s[i]!=' '&&s[i]!=',')
		{
			k++;
		}
		if(i==l-1||(s[i]==' '||s[i]==','))
		{
			if(k!=0)
			{
				if(k>max)
				{
					max=k;
					if(i==l-1) a=i;
					else a=i-1;
				}
				if(k<min)
				{
					min=k;
					if(i==l-1) b=i;
					else b=i-1;
				}
			k=0;
			}
		}
	}
	for(i=a-max+1;i<=a;i++) printf("%c",s[i]);
	printf("\n");
	for(i=b-min+1;i<=b;i++) printf("%c",s[i]);
}
void main()
{
	int i,j,k,p;
	char s[1000],b[1000][50];
	char *m,*r;
	gets(s);
	for(m=s,j=0;*m!='\0';){
		for(r=m,i=0;*r!=' '&&*r!='\0';r++,i++)
			*(*(b+j)+i)=*r;
		*(*(b+j)+i)='\0';
		j++;
		m=r;
	    if(*m==' ') m++;
	}
	for(i=0;i<j;i++){
		for(k=0,p=0;k<j;k++){
			if(strlen(*(b+i))>=strlen(*(b+k)))
				p++;
		}
		if(p==j){ printf("%s\n",*(b+i));break;}
	}
	for(i=0;i<j;i++){
		for(k=0,p=0;k<j;k++){
			if(strlen(*(b+i))<=strlen(*(b+k)))
				p++;
		}
		if(p==j){ printf("%s\n",*(b+i));break;}
	}
}
int main()
{
	int n;
	char c[201][40]={0};
    scanf("%d", &n);
	int i,b[201]={0};
    for(i=0;i<n;i++)
	{
		scanf("%s", c[i]);
		getchar();
	}
	
    int num,q=0;
	int z,x=0,y=30;
    for(z=0;z<n;z++)
	{
		b[z]=strlen(c[z]);
		
	    if(b[z]>=x)
			x=b[z];
		if(b[z]<=y)
			y=b[z];
		
	}
    for(z=0;z<n;z++)
	{
		if(b[z]==x)
		{
			printf("%s\n", c[z]);
			break;
		}
	}
	for(z=0;z<n;z++)
	{
		if(b[z]==y)
		{
			printf("%s", c[z]);
			break;
		}
	}
}
// 13.1.cpp 

int main()
{
	char ch[3000];
	int len1 = 0, len2 = 0, len = 0, i, j;
	int m = 0, n = 0, p = 0, num = 0;
	while(cin)
	{
		ch[len] = getchar();
		if (ch[len] == ' ' || ch[len] == '\n')
			num++;
		if (num == 1)
		{
			n = 0;
			len2 = len;
		}
		if (ch[len] == '\n')
			break;
		len++;
	}
	ch[len] = ' ';
	for (i = 0; i <= len; i++)
	{
		if (ch[i] != ' ')
			 p++;
		else
		{
			if (p > len1)
			{
				len1 = p;
				m = i - p;
			}
			if (p < len2)
			{
				len2 = p;
				n = i - p;
			}
			p = 0;
		}
	}
	for (i = m; i < m + len1; i++)
		cout << ch[i];
	cout << endl;
	for (i = n; i < n + len2; i++)
		cout << ch[i];
	cout << endl;
	return 0;
}
int main()
{  char str[10000];
   gets(str);
   char word[50],longword[50],shortword[50];
   int longnum=0,shortnum=50,k=0,i,j,num=0;
   for(i=0;i<strlen(str);i++)
   {  
          if(str[i]!=' '&&str[i]!=',')
          {     num++;
                word[k]=str[i];
                k++;
               
                
          }
           if(((str[i]==' '||str[i]==',')&&str[i-1]!=' '&&str[i-1]!=',')||str[i+1]==0)
           {    word[k]=0;
                if(longnum<num)
                {longnum=num;
                 strcpy(longword,word);
                }
                if(shortnum>num)
                {shortnum=num;
                 strcpy(shortword,word);
                } 
                num=0;
                k=0;
           }    
   }
   longword[longnum]='\0';
  
   printf("%s\n%s",longword,shortword);
return 0;
}
int main()
{
	char str[50*100], word[50][100];
	int i,j,k,max,min,max1=0,min1=0;

	gets(str);

	for(i=0,k=0,j=0;str[i]!='\0';i++)
	{
		if(str[i]==' ')
		{
			word[k][j]='\0';
			k++;
			j=0;
			continue;
		}
		word[k][j]=str[i];
		j++;
	}
	word[k][j]='\0';

	max=(int)strlen(word[0]);
	min=(int)strlen(word[0]);

	for(i=0;i<=k;i++)
	{
		if(max<(int)strlen(word[i]))
		{
			max=(int)strlen(word[i]);
			max1=i;
		}
		if(min>(int)strlen(word[i]))
		{
			min=(int)strlen(word[i]);
			min1=i;
		}
	}

	printf("%s\n",word[max1]);
	printf("%s\n",word[min1]);

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

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

    return 0;
}
int main()
{
	int i,j,k=0,m=0,n=0,len,lon[50],max=0,min=100;
	char a[2000],word[50][40];
	gets(a);
    len=strlen(a);
	for(i=0;i<len;i++)
	{
		if(a[i]==' ')
		{
			for(j=k;j<i;j++)
			{
				word[m][n]=a[j];
				n++;
			}
			word[m][n]='\0';
			lon[m]=n;
			k=i+1;
			m++;
			n=0;
		}
	}
	for(j=k;j<len;j++)
	{
		word[m][n]=a[j];
		n++;
	}
	word[m][n]='\0';
	lon[m]=n;
	for(i=0;i<=m;i++)
	{
		if(max<lon[i])
		{
			max=lon[i];
		}
		if(min>lon[i])
		{
			min=lon[i];
		}
	}
	for(i=0;i<=m;i++)
	{
		if(max==lon[i])
		{
			printf("%s\n",word[i]);
			break;
		}
	}
	for(i=0;i<=m;i++)
	{
		if(min==lon[i])
		{
			printf("%s\n",word[i]);
			break;
		}
	}
	return 0;
}
int main()
{
    int i,k;
    char a[100][100],b[100],c[100];
    int n=0;
    for(i=0;i<100;i++)
    {
        scanf("%s",a[i]);
        n++;
        k=getchar();
        if(k=='\n')
            break;
    }
    strcpy(b,a[0]);
    for(i=0;i<n;i++)
    {
        if(strlen(b)>strlen(a[i]))
            strcpy(b,a[i]);
    }
    strcpy(c,a[0]);
    for(i=0;i<n;i++)
    {
        if(strlen(c)<strlen(a[i]))
            strcpy(c,a[i]);
    }
    printf("%s\n",c);
    printf("%s\n",b);
}
int main(){
	char a[300],b[100][100];
	int i,j=0,start=0,len[100],max=0,min=0;
	gets(a);
	for(i=0;a[i]!='\0';i++){
		if(a[i]==' '){
			b[j][i-start]='\0';
			j++;
			start=i+1;
		}else if(a[i]!=','){
			b[j][i-start]=a[i];
		}
	}
	b[j][i-start]='\0';
	j++;
	for(i=0;i<j;i++){
		len[i]=strlen(b[i]);
	}
	for(i=0;i<j;i++){
		if(len[max]<len[i]){
			max=i;
		}
		if(len[min]>len[i]){
			min=i;
		}
	}
	printf("%s\n%s\n",b[max],b[min]);
	return 0;
}
int main()
{
	int n,a,b,c,len;
	unsigned maxlen,minlen;
	char max[20],min[20];
	char cen[20];
	scanf("%s",&cen);
	len=strlen(cen);
	maxlen=minlen=len;
	strcpy(max,cen);
	strcpy(min,cen);
	while(getchar()!='\n')
	{
		scanf("%s",&cen);
		if(strlen(cen)>maxlen)
		{
		strcpy(max,cen);
		maxlen=strlen(cen);
		}
		if(strlen(cen)<minlen)
		{			
		strcpy(min,cen);
		minlen=strlen(cen);
		}

	}
	printf("%s\n",max);
	printf("%s\n",min);
	
}
void main()
{
	char c[500],a[50][20];
	int b[50],i=0,t=0,j,min=20,max=0,count=0;
	gets(c);
	for(j=0;j<50;j++)
	{
		count=0;
	    for(i=t;i<20+t;i++)
		{
		    if(c[i]==' ' || c[i]=='\0')
			{
			    t=i+1;
				break;
			}
			else 
			{
				a[j][count]=c[i];
			    count++;
			}	
		}
		b[j]=count;
		if(c[i]=='\0')
			break;
	}
		  

	for(i=0;i<=j;i++)
	{
		if(b[i]>max)
			max=b[i];
		if(b[i]<min)
			min=b[i];
	}
	for(i=0;i<=j;i++)
	{
		if(b[i]==max)
		{
			for(t=0;t<b[i];t++)
				printf("%c",a[i][t]);
			printf("\n");
			break;
		}	
	}
	for(i=0;i<=j;i++)
	{
		if(b[i]==min)
		{
			for(t=0;t<b[i];t++)
				printf("%c",a[i][t]);
			break;		
		}
	}
}
int main(){
	char a[NUM*LEN];
	char b[NUM][LEN];
	int i,k,index;
	int max,min;
	gets(a);
    index=0;
	for(i=0;;i++){
		for(k=0;;){
			if(a[index]!=' '&&a[index]!=0){
				b[i][k]=a[index];
				index++;
				k++;
			}else{
				b[i][k]=0;
				index++;
				k++;
				break;
			}
		}
		if(a[index-1]==0){
			break;
		}
	}
    max=0;
    min=0;
	for(k=1;k<=i;k++){
		if(strlen(b[k])>strlen(b[max])){
			max=k;
		}
		if(strlen(b[k])<strlen(b[min])){
			min=k;
		}
	}
	printf("%s\n",b[max]);
    printf("%s\n",b[min]);
    return 0;
}
int main()
{
	char a[1000],c[1000][1000];
	gets(a);
	int i,j,x,y,b=0,d=0;
	int length[200]={0};
	int max,min;

	for(i=0;a[i]!='\0';i++){
		if((a[i]!=' ')&&(a[i]!=',')){
			c[b][d]=a[i];
			d++;
			length[b]++;
		}
		else if(((a[i]==' ')&&(a[i-1]!=','))||((a[i]==',')&&(a[i+1]==' '))){
			b++;
			d=0;
		}
		else if((a[i]==' ')&&(a[i-1]==',')){
			continue;
		}
	}

			
	max=length[0];
	x=0;

	for(i=0;i<b;i++){
		if(max<length[i+1]){
			max=length[i+1];
			x=i+1;
		}
	}
	for(j=0;j<length[x];j++){
		printf("%c",c[x][j]);
	}
	printf("\n");

		
	min=length[0];
	y=0;

	for(i=0;i<b;i++){
		if(min>length[i+1]){
			min=length[i+1];
			y=i+1;
		}
	}
	for(j=0;j<length[y];j++){
		printf("%c",c[y][j]);
	}

	return 0;
}
int main () {
	char s[5000];
	char *ss[50];
	
	int i,n=0,max=0,min=0;
	gets(s);
ss[n++]=s;
for(i=0;s[i];i++){
if(s[i]==' '){
s[i]=0;
ss[n++]=s+i+1;
}
}
for(i=0;i<n;i++){
if(strlen(ss[i])<strlen(ss[min])){
min=i;
}
if(strlen(ss[i])>strlen(ss[max])){
max=i;
}
}
puts(ss[max]);
puts(ss[min]);
return 0;
}
int main(int argc, char *argv[])
{
    char ch[1000];
    int a[50]={0};
    gets(ch);
    int m;
    m=strlen(ch);
    int i,j=0;
    for(i=0;i<=m-1;i++)
    {if(ch[i]==' '||ch[i]=='\n')
    j++;
    else 
    a[j]++;}
    int max=0,min=100,q,p;
    for(i=0;i<=j;i++)
    {if(max<a[i])
    {max=a[i];
    q=i;}
    if(min>a[i])
    {min=a[i];
    p=i;}
}
if(q==0)
{for(i=0;ch[i]!=' ';i++)
printf("%c",ch[i]);printf("\n");}
else
{int num=0;

for(i=0;i<=m-1;i++)
{ if(ch[i]==' ')
  num++;
  else if(num==q)
  printf("%c",ch[i]);
}
  printf("\n");
  
  
    
    

}
if(p==0)
{for(i=0;ch[i]!=' ';i++)
printf("%c",ch[i]);
printf("\n");}
else 
{int mum=0;
for(i=0;i<=m-1;i++)
{if(ch[i]==' ')
 mum++;
else if(mum==p)
printf("%c",ch[i]);
if(mum==p+1)
  {printf("\n");
  break;}
}}

    
    
    
    
    
    
    
  

  return 0;
}
void main()
{
	int max,min,len,i,j;
	char *p,*q,*max_index,*min_index,a[1024];
	gets(a);
	max=0;
	min=100;
	for(p=q=a;;)
	{
		if(*q==' '||*q=='\0')
		{   len=q-p;
			if(len>max)
			{
				max=len;
				max_index=p;
			}
			if(len<min)
			{
				min=len;
				min_index=p;
			}
			if(*q=='\0') break;
		    q=p=q+1;
		}
		else
			q++;
		
	}
	for(;*max_index!=' '&&*max_index;max_index++)
		printf("%c",*max_index);
	printf("\n");
	for(;*min_index!=' '&&*min_index;min_index++)
		printf("%c",*min_index);
	printf("\n");

}
int main ()
{
    char s[10000];
	char d[100][100];
	int i,m,n,j,t,a;
	char b[100];
	int r[100]={0};
	gets(s);
	m=0;
	n=0;
	i=0;
    while (s[i]!='\0'){
		j=0;
		for (;s[i]!=' '&&s[i]!='\0';i++,j++)
		{
			d[m][j]=s[i];
			r[m]++;
		}
		if(s[i]=='\0')
		{
			break;
		}
		d[m][j]='\0';
        m++;
		n++;
		i++;
	}
	d[m][j]='\0';
	a=n;
	for (;n>0;n--){
		for(m=0;m<n;m++){
			if (r[m+1]<r[m]){
				t=r[m+1];
				r[m+1]=r[m];
				r[m]=t;
				strcpy(b,d[m+1]);
				strcpy(d[m+1],d[m]);
				strcpy(d[m],b);
			}
		}
	}
	if(r[a]!=r[a-1]){
         printf("%s\n",d[a]);
	}
	else{
		for(i=0;i<a;i++){
			if (r[i]==r[a]){
                printf("%s\n",d[i]);
				break;
			}
		}
	}
	printf("%s",d[0]);
	return 0;
}
int main()
{
    char a[500];
    int len,  b[500],i,k,max,min,p=0,q=0;
    gets(a);
    len=strlen(a);
    k=0;
    for(i=0;i<len;i++)
        {
            if(a[i]==' '||a[i]==',')b[k]=i,k++;
        }
        b[k]=i;
    max=b[0]+1;
    min=b[0]+1;
    for(i=0;i<k;i++)
     {
         if(b[i+1]-b[i]>max){max=b[i+1]-b[i];p=i;}
         else if(b[i+1]-b[i]<min&&b[i+1]-b[i]>1){min=b[i+1]-b[i];q=i;}
     }
     if(max==b[0]+1)
     {
         for(i=0;i<b[0];i++)
         printf("%c",a[i]);
     }
     else
     {
         for(i=b[p]+1;i<b[p+1];i++)
         printf("%c",a[i]);
     }
        printf("\n");
        if(min==b[0]+1)
     {
         for(i=0;i<b[0];i++)
         printf("%c",a[i]);
     }
     else
     {
         for(i=b[q]+1;i<b[q+1];i++)
         printf("%c",a[i]);
     }

}
void main()
{
	char s[200],x[200],d[200];
	int ka=1,kb=1,z=0,ia=0,ib=0,i2=0,z0=100,i,j;
	gets(s);
	
	for(i=0;;i++,ka++,kb++)
	{
		if(s[i]=='\0')
		{
			if(ka>z)
			{
			  for(j=ia;j<=i-1;j++)
			  {
				 d[i2]=s[j];
				 i2++;
			  }
			  d[i2]='\0';

			   z=ka;
			   
			   i2=0;
			   
			   
			}
			if((kb<z0)&&(((s[i-1]<=90)&&(s[i-1]>=65))||((s[i-1]<=122)&&(s[i-1]>=97))))
			{
			  for(j=ib;j<=i-1;j++)
			  {
				 x[i2]=s[j];
				 i2++;
			  }
			  x[i2]='\0';

			   z0=kb;
			   
			   i2=0;
			   
			   
			}
			ka=0;kb=0;
			ia=i+1;ib=i+1;
			break;
		}
		else
		{

		 if(((s[i]<=90)&&(s[i]>=65))||((s[i]<=122)&&(s[i]>=97)))
		 {
		 }
		 else
		 {
			if(ka>z)
			{
			  for(j=ia;j<=i-1;j++)
			  {
				 d[i2]=s[j];
				 i2++;
			  }
			  d[i2]='\0';

			   z=ka;
			   
			   i2=0;
			   
			   
			}
			if(kb<z0)
			{
			  for(j=ib;j<=i-1;j++)
			  {
				 x[i2]=s[j];
				 i2++;
			  }
			  x[i2]='\0';

			   z0=kb;
			   
			   i2=0;
			   
			   
			}
			ka=0;kb=0;
			ia=i+1;ib=i+1;
		 }



		}
	}
	printf("%s\n",d);
	printf("%s\n",x);
}
int main()
{
	char word[50][101];
	char input[5001];
	int num = 0;
	gets(input);
	int len = strlen(input);
	for(int i=0; i<len; i++)
	{
		int j=0;
		while(i<len && ((input[i]>='a'&&input[i]<='z') || (input[i]>='A'&&input[i]<='Z')))
		{
			word[num][j] = input[i];
			j++;
			i++;
		}
		if(j>0)
		{
			word[num][j] = '\0';
			num++;
		}
	}
	int max_len=strlen(word[0]);
	int min_len=max_len;
	int max_index = 0, min_index = 0;
	for(int i=1; i<num; i++)
	{
		if(max_len < strlen(word[i]))
		{
			max_index = i;
			max_len = strlen(word[i]);
		}
		if(min_len > strlen(word[i]))
		{
			min_index = i;
			min_len = strlen(word[i]);
		}
	}
	printf("%s\n%s\n", word[max_index], word[min_index]);
}
void main()
{
	int i,k,m,maxnum,minnum;
	int temp0,max,min;
	char a[100][20]={'\0'};
	char temp;
	k=0;m=0;
	while((temp=getchar())!='\n')
	{
		if(temp!=' ')
		{
			a[k][m]=temp;
			m++;
		}
		else
		{
			k++;
			m=0;
		}
	}
	
	max=0;min=100;
	for(i=0;i<=k;i++)
	{
		temp0=strlen(a[i]);
		if(temp0>max)
		{
			maxnum=i;
			max=temp0;
		}
		if(temp0<min)
		{
			minnum=i;
			min=temp0;
		}
	}
	
	printf("%s\n",a[maxnum]);
	printf("%s\n",a[minnum]);
}
void main()
{
	char a[50][50]={0},c;
	int b[50]={0},i,j,m,max,min;
	for(i=0;;i++)
	{
		scanf("%s",a[i]);
		if(c=getchar()=='\n')
			break;
		m=i;
	}
	for(i=0;i<=m+1;i++)
	{
		for(j=0;j<50;j++)
		{
			if(a[i][j]!=0)
				b[i]++;
		}
	}
	for(i=1,max=0,min=0;i<=m+1;i++)
	{
		if(b[i]>b[max])
		{
			max=i;
		}
		if(b[i]<b[min])
		{
			min=i;
		}
	}
	printf("%s\n%s\n",a[max],a[min]);
}