semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
    char s[453];
 
    char words[100][101];

    int i,k, n;

    // ???????
    gets(s);


    // ?s???????????words?
    n = 0; k = 0;
    for (i = 0; s[i] != 0; i++) {
        if (s[i] == ' '||s[i]==',') {
            s[i] = '\0';
            strcpy(words[n], (s + k));
            n++;
            k = i + 1;
        }
    }
    strcpy(words[n], (s + k));
    n++;
   

    // ????words??????
    int maxlen=0, minlen=0;
    for ( i = 0; i < n; i++) {
		if (words[i][0]!='\0'){
       if (strlen(words[maxlen])<strlen(words[i])){
       maxlen=i;
	   }
		
       if(strlen(words[minlen])>strlen(words[i])){
       minlen=i;}
		}
    }
    printf("%s\n%s\n",words[maxlen],words[minlen]);
	
    return 0;
}
int count(char*p)
{int n=0;
 for(;(*p!=' ')&&(*p);p++)n++;
 return n;
}
int main()
{ char a[500],min[500]={0},max[500]={0};
  int  i,j,n,mi=0,ma=0,k,x;
  gets(a);
  for(i=0;a[i]!=' ';i++)
  {
   mi++,ma++;
   min[i]=max[i]=a[i];
  }
  for(;a[i];i++)
  {
  if(a[i]==' ')
  {
	  k=count(&a[i+1]);
	  if(mi>k)
		{for(x=0;a[i+1+x]!=' '&&a[i+1+x];x++)
			min[x]=a[i+1+x];
	  min[x]='\0';
	  mi=k;}
	  if(ma<k)
		 {for(x=0;a[i+1+x]!=' '&&a[i+1+x];x++)
			max[x]=a[i+1+x];
	                 max[x]='\0'; 
	  ma=k;}
  }
  
  }

  puts(max);

  puts(min);
}
void main()
{
	int i,j,maxlen=0,minlen,max=0,min=0;
	char a[999][50]={0};
	scanf("%s",a[0]);
	for(i=1;getchar()!='\n';i++)
		scanf("%s",a[i]);
	minlen=strlen(a[0]);
	for(j=0;j<i;j++)
	{
		if(strlen(a[j])>maxlen)
		{
			maxlen=strlen(a[j]);
			max=j;
		}
		if(strlen(a[j])<minlen)
		{
			minlen=strlen(a[j]);
			min=j;
		}
	}
	printf("%s\n%s",a[max],a[min]);
}
void main()
{
	char a[500];
	int i,j=1,b[500],c,d,e=0,f=0;
	gets(a);          /*????????*/
	b[0]=-1;
	for (i=0;a[i]!='\0';i++)
		if (a[i]==' ')
		{
			b[j]=i;
		    j++;
		}
	b[j]=i;
    c=b[1]-b[0];
	d=b[1]-b[0];
	for (i=1;i<=j;i++)
	{
		if ((b[i]-b[i-1])>c)
		{
			c=b[i]-b[i-1];
			e=i-1;
		}
		if ((b[i]-b[i-1])<d)
		{
			d=b[i]-b[i-1];
			f=i-1;
		}
	}
	for (i=(b[e]+1);i<b[e+1];i++)
		printf("%c",a[i]);
	printf("\n\n");
	for (i=(b[f]+1);i<b[f+1];i++)
		printf("%c",a[i]);
}
int main(){
	char sd[4000];
	gets(sd);
	int i, a=0, b=0, sum=1, k;
	char s[200][30], e[30];
	for(i=0;sd[i]!='\0';i++){
		if(sd[i]==' '||sd[i]==','){
			s[a][b]='\0';
			a++;
			b=0;
			sum++;
		}
		else{
			s[a][b]=sd[i];
			b++;
		}
	}
	s[a][b]='\0';
	for(k=1;k<=sum;k++){
		for(i=0;i<sum-k;i++){
			if(strlen(s[i])<strlen(s[i+1])){
				strcpy(e,s[i+1]);
				strcpy(s[i+1],s[i]);
				strcpy(s[i],e);
			}
		}
	}
	printf("%s\n", s[0]);
	for(k=1;k<=sum;k++){
		for(i=0;i<sum-k;i++){
			if(strlen(s[i])>strlen(s[i+1])){
				strcpy(e,s[i+1]);
				strcpy(s[i+1],s[i]);
				strcpy(s[i],e);
			}
		}
	}
	for(i=0;i<sum;i++){
		if(strlen(s[i])!=0){
			strcpy(s[0],s[i]);
			break;
		}
	}
	printf("%s", s[0]);
	return 0;
}
int main()
{
	int i = 0;
	int max[2] = {0, 0};
	int min[2] = {100, 0};
	char word[200][100];
	int leg[200];
	while(scanf("%s", word[i]) != EOF)
	{
		leg[i] = strlen(word[i]);
		if (leg[i] > max[0])
		{
			max[0] = leg[i];
			max[1] = i;
		}
		if (leg[i] < min[0])
		{
			min[0] = leg[i];
			min[1] = i;
		}
		i++;
	}
	cout << word[max[1]] << endl;
	cout << word[min[1]] << endl;
	return 0;
}
int main(int argc, char *argv[])
{
  char a[50][80];
  scanf("%s",a[0]);
  int i,j=0,k;
  for(i=1;getchar()==' ';i++)
   scanf("%s",a[i]);
  
  char (*max)[],(*min)[];
   max=&a[0];
   min=&a[0];
  for(j=1;j<i;j++)
  {    
       if(strlen(*max)<strlen(a[j]))
         max=&a[j];
       if(strlen(*min)>strlen(a[j]))
         min=&a[j];
  }
  puts(*max);
  puts(*min);

  return 0;
}
void main() {
    char str[1000];
    gets(str);
    int len;
    len=strlen(str);
    int max=0,min=10000;
    int i;
    int lenth=0;
    for(i=0;i<len;i++){
        if (str[i]!=' '){
            lenth=lenth+1;
        }
        if (str[i]==' '){
            if (lenth>max){max=lenth;}
            if (lenth<min){min=lenth;}
            lenth=0;
        }

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

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

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

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

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

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

    }
    char minlenword[100];
    for(i=0;i<=min-1;i++){
        minlenword[i]=str[minpostail-(min-1)+i];
    }
    minlenword[min]='\0';
    puts(minlenword);
}
void sub(char c[])
{
	int i,l;
	l=strlen(c);
	for (i=0;i<l;i++)
	{
		if (c[i]==',')
			c[i]=' ';
	}
}

void main()
{
	int i,j=0,k=0,l,max=0,rmax=0,min=0,rmin=0;
	char c[2000]={'\0'},word[200][100]={'\0'};
	gets(c);
	sub (c);
	l=strlen(c);
	for (i=0;i<l;i++)
	{
		if (c[i]==' ')
		{
			j++;
			word[j][k]='\0';
			k=0;
		}
		else
		{
			word[j][k]=c[i];
			k++;
		}
	}
	min=strlen(word[0]);
	max=strlen(word[0]);
	for (;j>=0;j--)
	{
		l=strlen(word[j]);
		if (l>=max)
		{
			max=l;
			rmax=j;
		}
		if (l<=min && l>0)
		{
			min=l;
			rmin=j;
		}
	}
	printf ("%s\n",word[rmax]);
	printf ("%s\n",word[rmin]);
}
int main()
{
	char s[1000];
    int i=0,j=0,c=0,m=0,n=0,d=10,a,x;
	scanf("%s",&a);
	x=getchar();
    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++;
	}
	return 0;
}
int main()
{
	char ch[10005];

	int m,n,i,k,ch1[2005]={0},max,min,zd,zx,zd1,zx1;
	scanf("%d",&n);
	getchar();
	gets(ch);
	m=strlen(ch);
	for(i=0,k=0;i<m;i++)
	{
		if(ch[i]==' ')
			k=i+1;
		else if(ch[i]==',')
			k=i+1;
		else
		{	
			
			ch1[k]++;
		}
	}
	min=ch1[0];
	zx=0;
	max=ch1[0];
	zd=0;
	for(i=0;i<m;i++)
	{
		if(ch1[i]==0)
			continue;
		if(ch1[i]<min)
		{	
			min=ch1[i];
			zx=i;
		}
		if(ch1[i]>max)
		{	
			max=ch1[i];
			zd=i;
		}
	}
	//printf("??%d ????%d ??%d ????%d\n",max,zd,min,zx);
	zd1=zd;
	for(zd=zd;zd<zd1+max;zd++)
		printf("%c",ch[zd]);
	printf("\n");

	zx1=zx;
	for(zx;zx<zx1+min;zx++)
		printf("%c",ch[zx]);
	printf("\n");
    
	return 0;
}
int getstr(char str[],char s[],int m,int n){
int i,j=0;
for(i=m+1;i<n;i++,j++)
s[j]=str[i];
for(i=j;i<strlen(s);i++)
s[i]=0;
return 0;
}
int main(){
char snt[300],word[49][20],*p,*q;
int len,label[50]={0},i,j=0,k,l=0;
gets(snt);
len=strlen(snt);
for(i=0;i<len;i++)
if(snt[i]==' ')
label[j++]=i;
for(i=1;i<j;i++)
getstr(snt,word[i],label[i-1],label[i]);
for(k=0;k<label[0];k++)
*(word[0]+k)=*(snt+k);
*(word[0]+k)='\0';
for(k=label[j-1]+1;k<len;k++,l++)
*(word[j]+l)=*(snt+k);
*(word[j]+l)='\0';
p=word[0];
for(k=0;k<j;k++)
if(strlen(word[k+1])>strlen(p))
p=word[k+1];
printf("%s\n",p);
q=word[0];
for(k=0;k<j;k++)
if(strlen(word[k+1])<strlen(q))
q=word[k+1];
printf("%s\n",q);
return 0;
}
char word[200];
 
int main(int argc, char* argv[])
{
	int i,j,n,e[50],len[50],l,a,b;
	char word[300];
	gets(word);
	n=(int)strlen(word);
    word[n]=' ';
	e[0]=-1;
	j=0;
	for(i=0;i<=n;i++){
		if(word[i]==' '){
			j++;
			e[j]=i;
			len[j]=e[j]-e[j-1]-1;
		}
	}
	l=j;
	for(j=1;j<l;j++){
		for(i=j+1;i<=l;i++){
			if(len[i]>len[j]){
				a=len[j];
				len[j]=len[i];
				len[i]=a;
				b=e[j];
				e[j]=e[i];
				e[i]=b;
			}
		}
	}
	for(i=(e[1]-len[1]);i<e[1];i++){
		printf("%c",word[i]);
	}
	printf("\n");
    for(j=1;j<l;j++){
		for(i=j+1;i<=l;i++){
			if(len[i]<len[j]){
				a=len[j];
				len[j]=len[i];
				len[i]=a;
				b=e[j];
				e[j]=e[i];
				e[i]=b;
			}
		}
	}
	for(i=(e[1]-len[1]);i<e[1];i++){
		printf("%c",word[i]);
	}
	printf("\n");
	return 0;
}
int main()
{
    char s[5000];
    char words[1000][1000];
    int i, k=0, n=0,a,b;
    gets(s);
    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++;	 
    a=strlen(words[0]);
	b=strlen(words[0]);

	for(i=0;i<n;i++)
	{
		if(a>strlen(words[i]))
		{
			a=strlen(words[i]);
		}
	    if(b<strlen(words[i]))
		{
			b=strlen(words[i]);
		}
	}

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

 
    return 0;
}
int main()
{
	char c[400]={'a'};
	int i,num,r,l,t,m;
	int a[100],d[100];
	gets(c);
	num=strlen(c);
	for(i=0,r=1;i<num;i++)
		if(c[i]==' '){a[r]=i;r++;l=r;}
	a[l]=num;
	a[0]=-1;
	for(r=0;r<l;r++)
		d[r]=a[r+1]-a[r]-1;
	for(r=1,t=0,m=0;r<l;r++)
	{
		if(d[t]<d[r])t=r;
		if(d[m]>d[r])m=r;
	}
	for(r=a[t]+1;r<a[t+1];r++)
			printf("%c",c[r]);
		printf("\n");
	for(r=a[m]+1;r<a[m+1];r++)
			printf("%c",c[r]);
}
int main()
{
	char c[2000]={0},c1[50]={0},c2[20]={0};
	int i=0,j,len=0,max=0,min=100;
	while(1)
	{
		c[i]=getchar();
		if(c[i]!=','&&c[i]!=' '&&c[i]!='\n')
			len++;
		else if(len!=0)
		{
			if(len>max)
			{
				max=len;
				for(j=i-len;j<i;j++)
					c1[j-i+len]=c[j];
			}
			if(len<min)
			{
				min=len;
				for(j=i-len;j<i;j++)
					c2[j-i+len]=c[j];
				c2[j-i+len]=0;
			}
			len=0;
			if(c[i]=='\n') break;
		}
		i++;
	}
	printf("%s\n%s\n",c1,c2);
	return 0;
}
int main(){
	  char zfc[25000];
      char ip[50][100];	  
	  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 {
           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;
}
void main()
{
	char a[200][20],temp;
	int i,n,l[200]={0};
	int min,max;
	for(i=0;i<200;i++)
	{
		scanf("%s%c",a[i],&temp);
		l[i]=strlen(a[i]);
		if(temp=='\n') {n=i+1;break;}
	}
	min=max=0;
	for(i=0;i<n;i++)
	{
		if(l[i]>l[max]) max=i;
		if(l[i]<l[min]) min=i;
	}
	printf("%s\n",a[max]);
	printf("%s\n",a[min]);
}
int main(){
    int i,j=0,p,q,k,c,x=-1,d=-1,m;
    int b[10000];
    char a[10000];
    gets(a);
    k=strlen(a);
    for(i=0;i<k+1;i++){
                         if(a[i]==' '||a[i]==','){
                                                  b[j]=i;
                                                  j+=1;
                                                  }
                                                  }
    b[j]=k;
    c=b[0];
    p=c;
    q=c;
    for(i=1;i<j+1;i++){
                       c=b[i]-b[i-1]-1;
                       if(c>0){
                       if(c>p){
                               d=i-1;
                               p=c;
                               }
                       if(c<q){
                               x=i-1;
                               q=c;
                               }
                       else {
                            m=0;
                            }
                            }
                            else {
                                 m=0;
                                 }
                               }
                               if(d==-1){
                                        for(i=0;i<b[0]-1;i++){
                                  printf("%c",a[i]);
                                  }
                                  printf("%c\n",a[i]);
                                  }
                                  else {
    for(i=b[d]+1;i<b[d+1]-1;i++){
                                 printf("%c",a[i]);
                                 }
                                 
    printf("%c\n",a[i]);
}
    if(x==-1){
              for(i=0;i<b[0];i++){
                                  printf("%c",a[i]);
                                  }
                                  }
    else {
         for(i=b[x]+1;i<b[x+1];i++){
                                    printf("%c",a[i]);
                                    }
                                    }
    return 0;
}
int main()
{
	char str[5000],t[50][50];
	int a[50],b[50];
	char *s,*p;
	s=str;
	gets(s);
	strcat(s," ");
	int count=0;
	while(*s){
		p=strchr(s,' ');
		*p='\0';
		strcpy(t[count],s);
		a[count]=strlen(t[count]);
		b[count]=a[count];
		count++;
		s=p+1;
	}
	int max=0,min=0;
	for(int i=0;i<count;i++){
		if(a[i]>a[max]){
			max=i;
		}
	}
	for(int j=0;j<count;j++){
		if(b[j]<b[min]){min=j;
		}
	}
	printf("%s\n%s",t[max],t[min]);
	return 0;
}
struct word
{
    char a[40];
    int b;
};
int main()
{
   int n;scanf("%d",&n);
   int i;
   struct word dd[200]={0};

   for(i=0;i<n;i++)
   {
       scanf("%s",dd[i].a);
        dd[i].b=strlen(dd[i].a);
   }
   int max=dd[0].b;int x=0;
   int min=dd[0].b;int y=0;
   for(i=0;i<n;i++)

   {
       if(dd[i].b>max)
       {
           max=dd[i].b;
           x=i;
       }
       if(dd[i].b<min)
       {
           min=dd[i].b;
           y=i;
       }
   }
   printf("%s\n%s",dd[x].a,dd[y].a);
/*printf("%d %d ",max,min);*/
    return 0;
}
void main()
{
char s[50][50];
int k[50];
int a,i,t,j,l[50],q=0;
while (scanf("%s",s[q])!=EOF) q++;
for(i=0;i<=q;i++) 
{
k[i]=strlen(s[i]);
l[i]=k[i];
}
for(i=0;i<=q;i++)
for(j=i+1;j<=q;j++)
{
if(l[i]<l[j])
{
t=l[i];
l[i]=l[j];
l[j]=t;
}
}
if(l[q]==0)l[q]=l[q-1];
for(i=0;i<=q;i++)
if(k[i]==l[0]){printf("%s\n",s[i]);break;}
for(i=0;i<=q;i++)
if(k[i]==l[q]){printf("%s",s[i]);break;}
}
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)
           {    if(longnum<num)
                {longnum=num;
                 strcpy(longword,word);
                }
                if(shortnum>num)
                {shortnum=num;
                 strcpy(shortword,word);
                } 
                num=0;
                k=0;
               for(j=0;word[j]!=0;j++)
               {word[j]=0;}
           }    
   }
   longword[longnum]='\0';
  
   printf("%s\n%s",longword,shortword);
return 0;
}
char ls[1000], ss[1000];
int max, min;
int cl;
char buf[1000];

int main() {
    max = -1;
    min = 0x7fffffff;
    while(scanf("%s", buf) != EOF) {
        cl = strlen(buf);
        if(cl > max) {
            max = cl;
            strcpy(ls, buf);
        }
        if(cl < min) {
            min = cl;
            strcpy(ss, buf);
        }
    }
    puts(ls);
    puts(ss);
return 0;
}
int main(void)
{
	char str[2000],max[2000],min[2000];
	gets(str);
	char *p,*pM;
	int mi=strlen(str)+1,ma=0;
	p=str;pM=str;
	for(;;pM++)
	{
		if(*pM==' '||*pM==',')
		{
			*pM='\0';
			if(pM-p)
			{
				if(pM-p>ma) {strcpy(max,p);ma=pM-p;}
				if(pM-p<mi) {strcpy(min,p);mi=pM-p;}
			} 
			p=pM+1;
		}
		else if(*pM=='\0')
		{
			if(pM-p)
			{
				if(pM-p>ma) {strcpy(max,p);ma=pM-p;}
				if(pM-p<mi) {strcpy(min,p);mi=pM-p;}
			}
			break;
		}
	}
	puts(max);
	puts(min);
	return 0;
}
int main()
{
	char word[50][51];
	int m,i,c,d,chang=0,duan=51,a,j;
	for(m=0;;m++)
	{
		for(j=0;;j++)
		{

				scanf("%c",&word[m][j]);
				if(word[m][j]==32) break;
				if(word[m][j]==10) goto loop;
		}


	}
loop:	for(i=0;i<=m;i++)
		{
			a=0;
			for(j=0;;j++)
			{
				if(word[i][j]==32) break;
				if(word[i][j]==10) break;
				a++;
			}
	     	if(a<duan) 
			{
				duan=a;
				d=i;
			}
	     	if(a>chang)
			{
				chang=a;
			    c=i;
			}
		}
		for(i=0;;i++)
		{
			if(word[c][i]==32||word[c][i]==10) break;
			printf("%c",word[c][i]);
		}
		printf("\n");
		for(i=0;;i++)
		{
			if(word[d][i]==32||word[d][i]==10) break;
         	printf("%c",word[d][i]);
		}
}
void main()			
{
	char string[50][50]={0};
	int len[50]={0};
	int i=0,num=0,max,min;
	int maxi,mini;
	while( scanf("%s",string[i])!=EOF ){
		len[i]=strlen(string[i]);
		i++;
	}
	num=i;

	max=min=len[0];
	maxi=mini=0;
	for(i=1;i<num;i++){
		if(len[i]>max){
			max=len[i];
			maxi=i;
		}
		else if(len[i]<min){
			min=len[i];
			mini=i;
		}
	}
	printf("%s\n",string[maxi]);
	printf("%s\n",string[mini]);
}
void main()
{
int n=0,i,word=0,num=0,max=0,min=20,mx=0,mn=0;
char string[500];
int wn[50],wm[50];
for(i=0;i<50;i++) wn[i]=1;
gets(string);
for(i=0;string[i]!='\0';i++)
  {if(string[i]==' ') {word=0;n++;}
  else if(word==0){word=1;num++;wm[n]=i;}
  else if(word) wn[n]++;}

for(i=0;i<num;i++)
  {if(wn[i]>max) {max=wn[i];mx=wm[i];}
   if(wn[i]<min) {min=wn[i];mn=wm[i];}}
for(i=mx;i<mx+max;i++)
printf("%c",string[i]);
printf("\n");
for(i=mn;i<mn+min;i++)
printf("%c",string[i]);
printf("\n");
}
void main()
{
	char str[2048]={'\0'};
	char *pstr;
	int num[2048]={0},temp[100]={0};
	int n,i,j,s1,s2,k=0,t,max,min;
	int *pnum,*ptemp;
	gets(str);
	n=strlen(str);
	pstr=str;
	pnum=num;
	*(pstr+n+1)=' ';
	for (i=n;i>=0;i--)
	{
		*(pstr+i)=*(pstr+i-1);
	}
	*(pstr)=' ';
	s1=0;
	ptemp=temp;
	for (i=1;i<n+2;i++)
	{
		if (*(pstr+i)==' ')
		{
			s2=i;
			*(pnum+i)=s2-s1-1;
			*(ptemp+k)=*(pnum+i);
			s1=s2;
			k++;
		}
	}
	for(j=1;j<=k-1;j++)
	{
		for(i=0;i<k-j;i++)
		{
			if(*(ptemp+i)>*(ptemp+i+1))
			{
				t=*(ptemp+i+1);
				*(ptemp+i+1)=*(ptemp+i);
				*(ptemp+i)=t;
			}
		}
	}
	max=*(ptemp+k-1);
	min=*(ptemp);
	for (i=0;i<n+2;i++)
	{
		if(*(pnum+i)==max)
		{
			for (j=(i-max);j<i;j++)
				printf("%c",*(pstr+j));
			printf("\n");
			break;
		}
	}
	for (i=0;i<n+2;i++)
	{
		if(*(pnum+i)==min)
		{
			for (j=(i-min);j<i;j++)
				printf("%c",*(pstr+j));
			return;
		}
	}
}
void bubble(int a[],int l)
{
	int i,j;
	int t;
	for(i=1;i<l;i++)
		for(j=0;j<l-i;j++)
			if(*(a+j)>*(a+j+1))
			{
				t=*(a+j);
				*(a+j)=*(a+j+1);
				*(a+j+1)=t;
			}
}
void main()
{
	int i,j,k,n,min=50,max=0,maxt,mint;
	int l[503]={0};
	char c[203][50]={0};
	scanf("%d",&n);
    for(i=0;i<n;i++)
	{
		scanf("%s",c+i);
		*(l+i)=strlen(c+i);
	}

    for(i=0;i<n;i++)
	{
		if(*(l+i)>max)
		{
            max=*(l+i);
			maxt=i;
		}
		if(*(l+i)<min)
		{
			min=*(l+i);
			mint=i;
		}
	}
	if(min==max)
		printf("%s\n%s",c,c);
	else
		printf("%s\n%s",*(c+maxt),*(c+mint) );

}
int main()
{
    char a[10000],b[50][50],lo[50],sh[50];
    int n,i,j,k=0,p[51],max=0,min=100;
    gets(a);
    n=strlen(a);
    
    j=0;
    for(i=0;i<n;i++)
    {    if(a[i]!=' '&&a[i]!='.')
          { b[j][k]=a[i];
           k++;}
           else if(a[i]==' ')
           {k=0;
           j++;} 
           
                    }
                 
  
    while(j>=0){
    p[j]=strlen(b[j]);
  
    if(p[j]<=min)
    {strcpy(sh,b[j]);
    min=p[j];
    }
    if(p[j]>=max)
    {strcpy(lo,b[j]);
    max=p[j];}
    j--;
}
  
     printf("%s\n",lo);
     printf("%s",sh);
     return 0;
    
    }
char str[100];

search (int n)
{
     char *p1,*p2,*p,*p3,*p4;
     int max,min;
	 p1=&str[0]; max=0; min=100;
	 for (p=&str[0];p<=&str[n];p++)
	 {
	     if ((*p<65) || ((*p>90) && (*p<97)) || (*p>122) || (p==&str[n]))
		 {
			 if ((p-p1)>max) {max=p-p1; p3=p1; }
             if ((p-p1)<min) {min=p-p1; p4=p1; }
			 p++; p1=p;
		 }
	 }
     for (p=p3;p<p3+max;p++) printf ("%c",*p);
	 printf ("\n");
     for (p=p4;p<p4+min;p++) printf ("%c",*p);
	 printf ("\n");
}

int main ()
{
    int lenth;
	gets(str);
	lenth=strlen(str);
	search (lenth);

}
char s[10000];
int main()
{
	gets(s);
	int l[200]={0},r[200];
	int i=0,j=0;
	while(s[i]!='\0')
	{
		if(s[i]!=' ')
			l[j]++;
		else
		{
			r[j]=i;
			j++;
		}
		i++;
	}
	r[j]=i;
	int t1=l[0],t2=l[0];
	int a1=r[0],a2=r[0],b1=0,b2=0;
	for(i=0;l[i]!=0;i++)
	{
		if(t1<l[i])
		{
			t1=l[i];
			a1=r[i];
			b1=i;
		}
		if(t2>l[i])
		{
			t2=l[i];
			a2=r[i];
			b2=i;
		}
	}
	for(i=a1-l[b1];i<r[b1];i++)
	{
		printf("%c",s[i]);
	}
	printf("\n");
	for(i=a2-l[b2];i<r[b2];i++)
	{
		printf("%c",s[i]);
	}
	return 0;
}
int main(int argc, char* argv[])
{   char a[300];
    gets(a);
	int b,d[50];
	b=strlen(a);
	int i,j=0,k=0;
	char c[50][20];
	for(i=0;i<b;i++){
		if(a[i]!=' '){
			c[k][j]=a[i];
			j++;
		}
		else {
			c[k][j]='\0';
			k++;
			j=0;
		}
	}
	c[k][j]='\0';
	
		for(i=0;i<=k;i++){
	   d[i]=strlen(c[i]);
	}
		int max=d[0],min=d[0];
        for(i=0;i<=k;i++){
			if(d[i]>max)
				max=d[i];
			else if(d[i]<min)
				min=d[i];
		}
	  int h=0,e[10],f[10],g=0;
		for(i=0;i<=k;i++){
			if(d[i]==max){
                e[h]=i;
		      	h++;
			}
			else if(d[i]==min){
				f[g]=i;
				g++;
			}
		}
		printf("%s\n",c[e[0]]);
		printf("%s\n",c[f[0]]);
	return 0;
}
int main()
{
	char s[1000], *max, *min;
	gets(s);
	
	int i, mina=0, minb=50, maxa=0, maxb=0, ta=0, tb;
	int n = strlen(s);
	for(i=1; i<n+1; i++)
	{
		if(s[i] == ' ' || s[i] == '\0')
		{
			s[i] = '\0';
			tb = i;
			if(tb - ta > maxb - maxa)
			{
				maxb = tb;
				maxa = ta;
			}
			if(tb - ta < minb - mina)
			{
				minb = tb;
				mina = ta;
			}
			ta = tb + 1;
		}
	}
	max = &s[maxa];
	min = &s[mina];
	printf("%s\n%s", max, min);

	return 0;
}
int main()
{
	int h=0,k=0,i,j,len;
	char zfc[1000];
	char word[50][20];
	char temp[50];
	gets(zfc);
	for(i=0;i<strlen(zfc)+1;i++){
		if(zfc[i]!=' '){
		word[h][k]=zfc[i];
		k++;
		}
		else if(zfc[i]=='\0')
		{
			word[h][k]='\0';
		}
		else 
		{
			word[h][k]='\0';
			h++;
			k=0;
		}
	}
	
	len=h+1;
	 for(j=1;j<=len;j++){
		for(h=0;h<len-j;h++){
			if(strlen(word[h])>strlen(word[h+1])){
				strcpy(temp,word[h]);
				strcpy(word[h],word[h+1]);
				strcpy(word[h+1],temp);
			} 
		}
	 }
  puts (word[len-1]);
  puts (word[0]);
  return 0;
}
int main()
{
	char a[200];
	cin.getline(a, 200);
	int len = strlen(a);
	int i = 0, min = 20, max = 0, mini, maxi, l = 0;
	for(i = 0; i <= len; i++)
	{
		if(a[i] != ' ' && a[i] != ',' && a[i] != '\0')
			l++;
		else if(a[i-1] != ' ' && a[i-1] != ',' && a[i-1] != '\0')
		{
			if(min > l)
			{
				min = l;
				mini = i;
			}
			if(max < l)
			{
				max = l;
				maxi = i;
			}
			l = 0;
		}
	}
	for(i = maxi - max; i < maxi; i++)
		cout << a[i];
	cout << endl;
	for(i = mini - min; i < mini; i++)
		cout << a[i];
	cout << endl;
	return 0;
}
int main()
{
  int i,j,len,c=1,d=25;
  char dc[51][50],zc[50],zd[50];
  for(i=0;i<20;i++)
  {
               scanf("%s",&dc[i]);
               if((dc[i][0]>='a'&&dc[i][0]<='z')||(dc[i][0]>='A'&&dc[i][0]<='Z'))
               {
                                                                                 
               len=strlen(dc[i]);
               if(len>c){ strcpy(zc,dc[i]); c=len;}
               if(len<d){ strcpy(zd,dc[i]); d=len;}
               }
  }
  puts(zc);
  puts(zd);
               
  return 0;

}
int main()
{
	char str[200][200], ch;
	int i = 0, j = 0, count, longest = 0, shortest = 200, max, min, len[200];
	while ((ch = cin.get()) != '\n')
	{
		if (ch == ' ' || ch == ',')
		{
			if(j != 0)
			{
				len[i] = j;
				i++; 
				j = 0;
			}
		}
		else
		{
			str[i][j++] = ch;
		}
	}
	len[i] = j;
	count = i;
	for (i = 0; i <= count; i++)
	{
		if (len[i] < shortest)
		{
			shortest = len[i];
			min = i;
		}
		if (len[i] > longest)
		{
			longest = len[i];
			max = i;
		}
	}
	for (i = 0; i < longest; i++)
		cout << str[max][i];
	cout << endl;
	for (i = 0; i < shortest; i++)
		cout << str[min][i];
	cout << endl;
	return 0;
}