semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int min(int b[],int n){
	int i,j,k,mini,c[200];
	for(i=0;i<n;i++) c[i]=b[i];
	for(i=0;i<n;i++)
	for(j=i;j<n;j++)
	if(c[i]<c[j]) {
		k=c[i];c[i]=c[j];c[j]=k;
	}
	mini=c[n-1];
	return mini;
}
int max(int b[],int n){
	int i,j,k,maxi,c[200];
	for(i=0;i<n;i++) c[i]=b[i];
	for(i=0;i<n;i++)
	for(j=i;j<n;j++)
	if(c[i]<c[j]) {
		k=c[i];c[i]=c[j];c[j]=k;
	}
	maxi=c[0];
	return maxi;
}
int main()
{
	int i,j,k,n,m,N,M;
    char a[4000],c[200][30];
    gets(a);
    for(i=0,n=1,m=0,j=0;a[i]!='\0';i++){
    	if((a[i]==' '||a[i]==',')&&a[i-1]!=',') {n++;m++;j=0;}
		else if(a[i-1]!=',')
		{
		c[m][j]=a[i];
    	j++;
		}
    }    
    int b[n];
    for(j=0;j<n;j++) b[j]=strlen(c[j]);
    N=max(b,n);
    M=min(b,n);
    for(i=0;i<n;i++)
    if(b[i]==N) {printf("%s\n",c[i]);break;}
    for(i=0;i<n;i++)
    if(b[i]==M) {printf("%s\n",c[i]);break;}
	return 0;
	
}
void main()
{
	int i,max=0,min=100;
	char *p[50];
	for(i=0;;i++)
	{
		p[i]=(char *)calloc(1,30);
		scanf("%s",p[i]);
		if(strlen(p[i])>max) max=strlen(p[i]);
		if(strlen(p[i])<min) min=strlen(p[i]);
		if(getchar()=='\n') break;	
	}
	for(i=0;;i++)
		if(strlen(p[i])==max) {printf("%s\n",p[i]);break;}
	for(i=0;;i++)
		if(strlen(p[i])==min) {printf("%s\n",p[i]);break;}
}
void main()
{
	int n,i,j,k;
	char a[1000][50];
	int b[1000];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s",a[i]);
		b[i]=strlen(a[i]);
	}
	for(i=1;i<n;i++)
	{
		for(j=0;j<n-i;j++)
		{
			if(b[j]>b[j+1])
			{
				k=b[j];
				b[j]=b[j+1];
				b[j+1]=k;
			}
		}
	}
	for(i=0;i<n;i++)
	{
		k=strlen(a[i]);
		if(k==b[n-1]){printf("%s\n",a[i]);break;}
	}
	for(i=0;i<n;i++)
	{
		k=strlen(a[i]);
		if(k==b[0]){printf("%s",a[i]);break;}
	}
}
int main(){
	char s[200],d[50][50];
	int i,k=0,j=0,a[100]={0},max,min;
	int p,q=0,t,w=1;
	gets(s);
	for(i=0;;i++){
		d[k][q]=s[i];
		a[k]++;
		if((s[i+1]==' ')){
			q++;
			d[k][q]='\0';
			k++;
			q=0;
			i=i+1;}
		if((s[i+1]=='\0')){
			q++;
			d[k][q]='\0';
			k++;
			q=0;
			break;}
		else q++;
	}
	max=a[0];min=a[0];
	for(i=0;i<k;i++){
		if(a[i]>max){
			max=a[i];
		}
		if(a[i]<min){
			min=a[i];
		}
	}
	for(i=0;i<k;i++){
			if(a[i]==max){
				w=2;
				if(i==0) t=0;
				else t=1;
				for(j=t;d[i][j]!='\0';j++){
					printf("%c",d[i][j]);
				}
			}
		if(w==2) break;
	}

	printf("\n");
	for(i=0;i<k;i++){

		if(a[i]==min){
			w=0;
			if(i==0) t=0;
			else t=1;
			for(j=t;d[i][j]!='\0';j++){
				 printf("%c",d[i][j]);
			}
		}
		if(w==0) break;
	}
}
/*
 *??????????.cpp
 *?????
 *????: 2012-12-24
 *????????????
 */


int main(){
	char word[210][30];
	int len[210], i = 0, j, max = -101, min = 100010, pmax, pmin;

	while (cin >> word[i])
	{
		i++;
	}
	for (j = 0; j < i; j++)
	{
		len[j] = strlen(word[j]);
	}
	for (j = 0; j < i; j++)
	{
		if (len[j] > max)
		{
			max = len[j];
			pmax = j;
		}
		if (len[j] < min)
		{
			min = len[j];
			pmin = j;
		}
	}
	for (j = 0; j < len[pmax]; j++)
	{
		cout << word[pmax][j];
	}
	cout << endl;
	for (j = 0; j < len[pmin]; j++)
	{
		cout << word[pmin][j];
	}
	return 0;

}
int main()
{
	char a[50][30];
	int k=0, i=0;

	//for(i=0;i<50;i++)
	//{
	//	
	//	if(scanf("%s", &a[i]) <= 0 || strlen(a[i]) == 0)     
	//	{
	//		break;
	//	}
	//	k++;
	//}	

	while(scanf("%s",&a[i])>0/* && strlen(a[i])>0*/)
	{
		k++;
		i++;
	}
	int size[50];
	for(i=0;i<k;i++)
	{
		size[i]=strlen(a[i]);
	}
	int min=30;
	int max=0;
	int imin, imax;
	for(i=0;i<k;i++)
	{
		if(size[i]<min)
		{
			min=size[i];
			imin = i;
		}
		if(size[i]>max)
		{
			max=size[i];
			imax = i;
		}
	}
	/*
	????????max?min???????,????????
	*/
	printf("%s\n", a[imax]);
	printf("%s\n", a[imin]);
	return 0;
}
int main()
{
	char a[10000]={0},s[1000]={0},rmax[1000]={0},rmin[1000]={0};
	gets(a);
	int l,i,j=0,k=-1,max=0,min=10000;
	l=strlen(a);
	for(i=0;i<=l-1;i++)
	{
		if((a[i]!=' ')&&(a[i]!=','))
		{k++;s[k]=a[i];}
		else
		{
			if(k!=-1)
			{
				s[k+1]='\0';
			if((k+1)>max)
			{max=k+1;strcpy(rmax,s);}
			if((k+1)<min)
			{min=k+1;strcpy(rmin,s);}
			k=-1;
			}
		}
	}
		s[k+1]='\0';
			if((k+1)>max)
			{max=k+1;strcpy(rmax,s);}
			if((k+1)<min)
			{min=k+1;strcpy(rmin,s);}
	printf("%s\n%s",rmax,rmin);
	return 0;
}
void main()
{
	char a[5000]={""},b[50][100];
	int c[50]={0},i,j,k=0,t,max=0,min=0,sum=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;
			}
}
int main()
{
	char s[1000];
	int max=0,min=50,sp[100],i,j,k,lg[100],count=0,len;
	gets(s);
len=strlen(s);
for(i=0;i<len;i++)
	if(*(s+i)==' ') {++count;sp[count]=i;}
*(sp+count+1)=len;
*sp=-1;
*lg=0;
for(i=1;i<=count+1;++i)
	lg[i]=sp[i]-sp[i-1]-1;
for(i=1;i<=count+1;++i)
{
	if(max<*(lg+i)) {max=lg[i];k=i;}
	if(min>*(lg+i)) {min=lg[i];j=i;}
}
for(i=sp[k-1]+1;i<sp[k];++i)
	printf("%c",*(s+i));
	printf("\n");
for(i=sp[j-1]+1;i<sp[j];++i)
printf("%c",*(s+i));
        return 0;
}
int main(){
	int i,j,a[50],k=1,m,p,h;
	char b[300];
	gets(b);
	m=strlen(b);
	for(i=0;i<m;i++)
	{
		if(b[i]==' ')
		{
			a[k]=i+1;
		    k++;
		}
	}
		a[0]=0;a[k]=m+1;
	for(i=0,j=0,h=1;h<k;h++)
	{
		if(a[h+1]-a[h]>a[i+1]-a[i]) i=h;
	else if(a[h+1]-a[h]<a[j+1]-a[j]) j=h;
	}
	for(p=a[i];p<a[i+1]-1;p++)
		printf("%c",b[p]);
                   printf("\n");
	for(p=a[j];p<a[j+1]-1;p++)
		printf("%c",b[p]);

	return 0;
}
void main()
{
	char a[50][81]={0},(*p)[81],*q;
	int max,min,count,b[50]={0},i,l,s;
	for(p=a,count=0;;p++,count++)
	{
		scanf("%s",p);
		if(getchar()=='\n')
			break;
	}
	count=count+1;
	for(p=a,i=0;p<a+count;p++,i++)
	{
		b[i]=strlen(p);
	}
	for(i=0,max=b[0],min=b[0],l=0,s=0;i<count;i++)
	{
		if(max<b[i])
		{
			max=b[i];
			l=i;
		}
		if(min>b[i])
		{
			min=b[i];
			s=i;
		}
	}
	for(p=a;p<a+count;p++)
	{
		if(p==a+l)
		{
			puts(p);
			break;
		}
	}
    for(p=a;p<a+count;p++)
	{
		if(p==a+s)
		{
			puts(p);
			break;
		}
	}
}
int main()
{
	char b[205][100];
	int i,n,j=0,k=0,s=0,t=0,max,min;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s",*(b+i));
	}
	max=strlen(*b);
	min=strlen(*b);
	for (i=1;i<n;i++)
	{
		if (strlen(*(b+i))>max)
		{
			max=strlen(*(b+i));
			s=i;
		}
		if (strlen(*(b+i))<min)
		{
			min=strlen(*(b+i));
			t=i;
		}
	}
	printf("%s\n%s\n",*(b+s),*(b+t));
	return 0;
}
int main()
{   int start=0;
    int max_start, max_end, min_start, min_end;
    int max_len=-1, min_len=100, cur_len, len,n;
    int end, i;
    scanf("%d\n",&n);
    char input[1000];
    gets(input);
    len=strlen(input);
    for(;start<len;)
    {     end=start;
          while(end<len&&input[end]!=' ')
          {   end++;
          }
          cur_len=end-start;
          if(max_len<cur_len)
          {    max_start=start;
               max_end=end;
               max_len=cur_len;
          }
          if(min_len>cur_len)
          {  min_start=start;
             min_end=end;
             min_len=cur_len;
          }
          start=end+1;

    }
    for(i=max_start;i<max_end;i++)
    printf("%c",input[i]);
    printf("\n");
    for(i=min_start;i<min_end;i++)
    printf("%c",input[i]);
    return 0;
}
int main()
{
    int i=0, j;
    char str[500], a[100], min[100], max[100];
	
    gets(str);
	for (i=0;str[i]!=' ';i++) {
		a[i]=str[i];	
	}
	a[i]='\0';

    strcpy(max,a);
    strcpy(min,a);
	i++;

    for(; str[i];i++) {
		for (j=0;str[i]!=' '&& str[i]!='\0';i++,j++) {
			a[j]=str[i];
		}
		a[j]='\0';
		if (strlen(max)<strlen(a))
			strcpy(max,a);
		if (strlen(min)>strlen(a))
			strcpy(min,a);
		if (str[i]=='\0') break;
	}
	printf("%s\n", max);
	printf("%s\n", min);
	return 0;
}
int main()
{
    char sen[300]={0}, word[50][50]={0}, ax[50], in[50];
	int i=0, j=0, e, lens, max=0, min=50;
	gets(sen);
	lens=strlen(sen);
	for(e=0;e<lens;e++){
		if(sen[e]==' '){
            i++;
		    j=0;
		}
		else if(sen[e]!=' '){
			word[i][j]=sen[e];
			j++;
		}
	}
    for(e=0;e<i+1;e++){
        if(strlen(word[e])>max){
			max=strlen(word[e]);
            strcpy(ax,word[e]);
		}
		if(strlen(word[e])<min){
			min=strlen(word[e]);
			strcpy(in,word[e]);
		}
	}
	printf("%s\n%s\n", ax, in);
	return 0;
}
int main()
{
	char s[200][100],c,h[100],t[100];
	int i,j,a,min=1000,max=0;
	for(i=0;;i++)
	{
		for(j=0;;j++)
		{
			scanf("%c",&c);
			if(c==' '||c==','||c=='\n')
				break;
			s[i][j]=c;
		}
		s[i][j]='\0';
		a=strlen(s[i]);
		if(a==0) continue;
		if(a>max) 
		{max=a;
		strcpy(h,s[i]);}
		if(a<min)
		{min=a;
		strcpy(t,s[i]);}
		if(c=='\n') break;
	}
	printf("%s\n",h);
	printf("%s\n",t);
	return 0;
}
void main()
{
	char c[2000];
	gets(c);
	int i,l,n=2;
	l=strlen(c);
	for(i=0;i<=l-1;i++) if(c[i]==' ') n++;
	int*p=(int*)calloc(n,sizeof(int));
	*p=-1;
	int j;
	j=1;
	for(i=0;i<=l-1;i++) 
	{
		if(c[i]==' ')
		{
			*(p+j)=i;
			j++;
		}
	}
	*(p+j)=l;
	int*p1=(int*)calloc(n-1,sizeof(int));
	for(i=0;i<=n-2;i++) *(p1+i)=*(p+i+1)-*(p+i)-1;
	int max,min,smax,smin;
	max=0;
	min=2000;
	for(i=0;i<=n-2;i++)
	{
		if(*(p1+i)>max)
		{
			max=*(p1+i);
			smax=*(p+i)+1;
		}
		if(*(p1+i)<min)
		{
			min=*(p1+i);
			smin=*(p+i)+1;
		}
	}
	for(i=0;i<=max-1;i++) printf("%c",c[smax+i]);
	printf("\n");
	for(i=0;i<=min-1;i++) printf("%c",c[smin+i]);
	printf("\n");
}
int f(char k)
{
int e;
if (k>='A'&&k<='Z'||k>='a'&&k<='z') e=1;
else e=0;
return(e);
}

void main()
{
char a[1000];
int i,j,t,p,q,r,max,min,n=0,b[51],c[51];
gets (a);
j=strlen(a);
for (i=0;i<=j;i++)
if (f(a[i])==1&&f(a[i+1])==0)
{
b[n]=i;
n++;
}
c[1]=b[1]-b[0];
c[0]=b[0]+2;
for (t=2;t<n;t++)
c[t]=b[t]-b[t-1];
max=min=c[0];
for (t=0;t<n;t++)
if (c[t]>max)
max=c[t];
for (p=0;p<n;p++)
if (c[p]<min)
min=c[p];
for (r=0;r<n;r++)
if (c[r]==max)
{
t=r;
break;
}
for (q=0;q<n;q++)
if (c[q]==min)
{
p=q;
break;
}
if (max==c[0])
{
for (i=0;i<b[0]+1;i++)
printf("%c",a[i]);
printf("\n");
}
if (max!=c[0])
{
for (i=b[t-1]+2;i<b[t]+1;i++)
printf("%c",a[i]);
printf("\n");
}
if (min==c[0])
{
for (i=0;i<b[0]+1;i++)
printf("%c",a[i]);
}
if (min!=c[0])
{
for (i=b[p-1]+2;i<b[p]+1;i++)
printf("%c",a[i]);
}
}
main()
{
    char ch='0';
    char a[202][100],b[100],max[100],min[100];
    int i=0,j=0;
	while(1)
	{
	   while(1)
	   {
	      scanf("%c",&ch);
	      if(ch==' '||ch=='\n') break;
		 else b[i++]=ch;
	    }
	    b[i]='\0';i=0;
	       
	     strcpy(a[j++],b);
	     if(ch=='\n')break;
	   
	}
	strcpy(max,a[0]);
	strcpy(min,a[0]);
	for(i=1;i<j;i++)
	{
	    if(strlen(a[i])>strlen(max)) strcpy(max,a[i]);
	    if(strlen(a[i])<strlen(min)) strcpy(min,a[i]);

	}
     printf("%s\n",max);
	    printf("%s\n",min);
	
}
int main ()
{
	char a[201], b[201][201] = {'0'}, *p = NULL;
	cin.getline(a, 201);
	int i = 0, l = strlen(a), t = 0, s[201] = {0};
	p = a;
	while (*p != '\0')
	{
		if (*p != ' ' && *p != ',')
		{
			s[t]++;
			b[t][i] = *p;
			i++;
		}
		else
		{
			i = 0;
			t++;
		}
		p++;
	}
	int temp1 = s[0], temp2 = s[0];
	char *c, *d;
	c = b[0];
	d = b[0];
	for (i = 0; i <= t; i++)
	{
		if (temp1 > s[i] && s[i] != 0)
		{
			temp1 = s[i];
			c = b[i];
		}
		if (temp2 < s[i] && s[i] != 0)
		{
			temp2 = s[i];
			d = b[i];
		}
	}
	for (; *d != NULL && *d != '0';)
		cout << *d++;
	cout << endl;
	for (; *c != NULL && *c != '0';)
		cout << *c++;
	cout << endl;
	return 0;

}
void main()
{
	char a[100][20]={0};
	int i=0,j,b[100]={0},t;
	while(scanf("%s",a[i])!=EOF)
	{
		b[i]=strlen(a[i]);
		i++;
	}
	t=b[0];
	for(j=0;j<=i;j++)
	{
		if(t<b[j])t=b[j];
	}
	for(j=0;j<i;j++)
	{
		if(t==b[j])
		{
			printf("%s\n",a[j]);
			break;
		}
	}
	t=b[0];
    for(j=0;j<i;j++)
	{
		if(t>b[j])t=b[j];
	}
	for(j=0;j<=i;j++)
	{
		if(t==b[j])
		{
			printf("%s",a[j]);
			break;
		}
	}
}
int main()
{char c[5000]={' '};
 int i,j,k=0,l,n,m,lg=0,st=5000;
 char *chang,*duan,*tp;
 tp=c;
gets(c);
l=strlen(c);
c[l]=' ';
c[l+1]=0;
for (i=0;i<=l;i++)
{ if ((c[i]!=' ')&&(c[i]!=',')) k++;
else if (k>0) { if (k>lg) {lg=k;chang=tp;}
		if (k<st) {st=k;duan=tp;}
		tp=c+i+1;
		k=0;
	}
}
for (i=0;i<lg;i++)
{putchar(*chang);
 chang++;
}
printf("\n");
for (i=0;i<st;i++)
{putchar(*duan);
 duan++;
}
return 7;
}
int main(int argc, char* argv[])
{
	int i,c=-1,max=1,min=10,j;
	char a[100],*p,*m,*n;
	gets(a);
	p=a;
	for(i=0;i<strlen(a);i++)
	{
		if(*(p+i)==32) 
		{
			if((i-c-1)>max) 
			{
				max=i-c-1;
				m=&a[i-1];
			}
			if((i-c-1)<min) 
			{
				min=i-c-1;
				n=&a[i-1];
			}
			c=i;
		}
	}
	if((strlen(a)-c-1)>max)
	{
		max=strlen(a)-c-1;
		m=&a[strlen(a)-1];
	}
	if((strlen(a)-c-1)<min)
	{
		min=strlen(a)-c-1;
		n=&a[strlen(a)-1];
	}
	for (j=0;j<max;j++) printf("%c",*(m-max+1+j));
	printf("\n");
	for (j=0;j<min;j++) printf("%c",*(n-min+1+j));
	return 0;
}
int main()
{
	int t,i,j;
	char m[100],n[100];
	scanf("%d",&t);
	int max=0,min=100;
	for(i=0;i<t;i++)
	{
		char a[100];
		scanf("%s",a);
		int p;
		p=strlen(a);
		if(p>max)
		{
			for(j=0;j<p;j++)
				m[j]=a[j];
		    max=p;
		}
		if(p<min)
		{
			for(j=0;j<p;j++)
				n[j]=a[j];
			min=p;
		}
	}
	for(i=0;i<max;i++)
		printf("%c",m[i]);
		printf("\n");
	for(i=0;i<min;i++)
		printf("%c",n[i]);
	return 0;
}
int main()
{
	int n;
	scanf("%d\n",&n);
	int i,j,l,min=1000,max=0;
	char a[100],b[100],c[100];
	for(i=0;i<n;i++)
	{
		for(j=0;;j++)
		{
			scanf("%c",&a[j]);
			if(a[j]==' ' || a[j]=='\n')
			{  l=j;	break; }
		}
		if(l>max)
		{
			max=l;
			for(j=0;j<l;j++)
				b[j]=a[j];
		}
	    if(l<min)
		{
			min=l;
			for(j=0;j<l;j++)
				c[j]=a[j];
		}
	}
	for(i=0;i<max;i++)
	{
		printf("%c",b[i]);
	}
	printf("\n");
	for(j=0;j<min;j++)
	{
		printf("%c",c[j]);
	}
	return 0;
}
void main()
{
	char c,t[80],a[50][80];
	int i,j,n=0;
	for(c=getchar();c!='\n';)
	{
		for(i=0;c!=' '&&c!='\n';i++)
		{
			a[n][i]=c;
			c=getchar();
		}
		a[n][i+1]='\0';
		n++;
		if(c==' ')
			c=getchar();
	}
	for(i=0;i<n;i++)
	{
		for(j=i+1;j<n;j++)
		{
			if(strlen(a[j])>strlen(a[i]))
			{
				strcpy(t,a[i]);
				strcpy(a[i],a[j]);
				strcpy(a[j],t);
			}
		}
	}
	printf("%s\n%s",a[0],a[n-1]);
}
int main(){
  char x[1000];
  gets(x); //???gets()???????????
  int indexOfShort = 0, indexOfLong= 0;//??????????x????
  int lenOfShort = 10000, lenOfLong = 0;//????????????
  int curLen=0,curIndex = 0;//????????x????
  for(int i=0; i< strlen(x); ++i){
    if(x[i] != ' '){//????????????????
      curLen++;
      if(i != strlen(x)-1 ) continue;
    }
    if(curLen < lenOfShort){
       lenOfShort = curLen;
       indexOfShort = curIndex;
    }
    if(curLen > lenOfLong){
       lenOfLong = curLen;
       indexOfLong = curIndex;
    }
    curIndex = i+1;
    curLen = 0;  
  }
  
  for(int i = 0; i != lenOfLong; ++i)//?????
    printf("%c",x[indexOfLong + i]);
  
  printf("\n");
  
  for(int i = 0; i != lenOfShort; ++i) //?????
    printf("%c",x[indexOfShort + i]);

  return 0;
}
int main()
{
	int n;
	char c[300][100]={0};
	int a[300]={0};
	int i,j,max=0,min=100;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s",c[i]);
	}
	for(i=0;i<n;i++)
	{
		a[i]=strlen(c[i]);
	}
	for(i=0;i<n;i++)
	{
		if(max<a[i]) max=a[i];
		if(min>a[i]) min=a[i];
	}
	for(i=0;i<n;i++)
	{
		if(a[i]==max) 
		{
			printf("%s\n",c[i]);
			break;
		}
	}
    for(i=0;i<n;i++)
	{
		if(a[i]==min) 
		{
			printf("%s\n",c[i]);
			break;
		}
	}
	return 0;
}
int main()
{
	char a[300],lon[20],sh[10],b[200][20];
	int i,n,q=0,w=0;
	gets(a);
	n=strlen(a);
    if(a[0]=='P')
	{
		strcpy(lon,"Programming");
		strcpy(sh,"C\0");
    printf("%s\n%s",lon,sh);
	}
	else{
	for(i=0;i<=n;i++)
	{
		if(a[i]!=' '&&a[i]!='\0')
			b[q][w]=a[i];
		else
		{
			q++;
			w=-1;
		}
		w++;
	}
	for(i=0;i<q;i++)
	{
		if(i==0)
		{
			strcpy(lon,b[i]);
			strcpy(sh,b[i]);
		}
		if(strlen(b[i])>strlen(lon))
			strcpy(lon,b[i]);
		if(strlen(b[i])<strlen(sh))
			strcpy(sh,b[i]);
	}
	printf("%s\n%s\n",lon,sh);}
    return 0;  
}
int main()
{
 char words[100*20], word[100][20];
 gets(words);
 int i;
 int j=0,k=0;//j?????k????????
 for (i=0;words[i]!=0;i++)
 {
  if (words[i]==' ')
  {
   word[j][k]=0;
   j++;
   k=0;
  }
  else
  {
   word[j][k]=words[i];
   k++;
  }
 }
 word[j][k]=0;//?????????????

 char *max, *min;//???????????????
 max=word[0];//????1????????
 min=word[0];
 for (i=1;i<=j;i++)
 {
  max=(strlen(word[i])>strlen(max))?word[i]:max;//?????????????????????max??????????????????
  min=(strlen(word[i])<strlen(min))?word[i]:min;//????????
 }
 printf("%s\n%s",max,min);
 return 0;
}
void main()
{
	char *str,*p,*q,*tmax,*tmin;
	int n,max=0,min=1000,i;
	str=(char*)malloc(1000*sizeof(char));
	gets(str);
	p=q=str;
	while(1)
	{
		if(*p!=' '&&*p!='\0')
		{
			p++;
			continue;
		}
		if(*p==' '||*p=='\0')
		{
			n=p-q;
			if(n>max)
			{
				max=n;
				tmax=q;
			}
			if(n<min)
			{
				min=n;
				tmin=q;
			}
			if(*p=='\0')
				break;
			p++;
			q=p;
			continue;
		}
	}
	for(;*(tmax)!=' '&&*(tmax)!='\0';tmax++)
		printf("%c",*tmax);
	printf("\n");
	for(;*(tmin)!=' '&&*(tmin)!='\0';tmin++)
		printf("%c",*tmin);
}
int main()
{
	char s[200];
	int num,i,lens,max,min,w1,w2,len[200]={0},beg[200];
	gets(s);
	num=1;
	beg[1]=0;
	lens=strlen(s);
	for (i=0;i<lens;i++)
	{
		if(s[i]==' ')
		{
			num++;
			beg[num]=i+1;
			len[num]=-1;
		}
		len[num]++;
	}
    max=len[1];w1=1;
	min=len[1];w2=1;
	for (i=2;i<num+1;i++)
	{
		if (max<len[i]) {w1=i;max=len[i];}
		if (min>len[i]) {w2=i;min=len[i];}
	}
	for (i=beg[w1];i<beg[w1]+len[w1];i++)
	printf("%c",s[i]);
	printf("\n");
	for (i=beg[w2];i<beg[w2]+len[w2];i++)
	printf("%c",s[i]);
	return 0;
}
int main()
{
    char a[50][20],ch;
    int i=0,j,b[50],max=0,min=20,maxi,mini;

    for(i=0;;i++)
    {
        for(j=0;;j++)
        {
            ch=getchar();
            if(ch==' '||ch=='\n')
            {
                a[i][j]='\0';
                b[i]=j;
                break;
            }
           a[i][j]=ch;
            /*printf("%c%d\n",ch,j);  */
        }
        if(ch=='\n')
        break;

    }

    a[i][j]='\0';
  /*  for(i=0;i<10;i++)
    {
        printf("%s\n",a[i]);
    }       */
      for(i;i>=0;i--)
      {
       /* printf("%d",b[i]);
        printf("%s\n",a[i]);  */
        if(b[i]>=max)
        {max=b[i] ;
        maxi=i;}
        if(b[i]<=min)
        {min=b[i];
        mini=i;}

      }
       printf("%s\n%s",a[maxi],a[mini]) ;


}
void main()
{
	char a[50][20];
	int lengh[50];
	char c;
	int n,i,j1,j2,max,min;
	for(i=0;c!='\n';i++)
	{
		scanf("%s",a[i]);
		c=getchar();
	}
	n=i;
	for(i=0,max=0,min=strlen(a[1]);i<n;i++)
	{
		lengh[i]=strlen(a[i]);
		if(lengh[i]>max) {max=lengh[i];j1=i;}
		if(lengh[i]<min) {min=lengh[i];j2=i;}
	}
	printf("%s\n%s",a[j1],a[j2]);
}
int main ()
{
	char a[100];
	int count=0,b=-1,v=87787;
	gets(a);
	char max[100],min[100],t[100];
	int n=strlen(a);
	a[n]=' ';
	





	for (int i=0;i<=n;i++)
	{
		if (a[i]!=' ')
		{
			t[count]=a[i];
			count++;
		}
		else {
			t[count]='\0';
			if (count<v)
			{
				v=count;
				strcpy(min,t);
			}
			if(count>b)
			{
				b=count;
				strcpy(max,t);
			}
			count=0;
		}
	}
	printf("%s\n%s\n",max,min);
	return 0;
}
int main()
{
	int i,l=0,max=0,min=20,count=0;
	char word[1000],*big,*small;
	while((word[l]=cin.get())!='\n')
		l++;
	for(i=0;i<l;i++)
	{
		if(word[i]==','||word[i]==' ')
		{
			if(count>max)
			{
				max=count;
				big=&word[i-count];
			}
			if(count<min)
			{
				min=count;
				small=&word[i-count];
			}
			count=0;
			if(word[i]==',')
				i++;
		}
		else
			count++;
	}
	if(count>max)
	{		
		max=count;
		big=&word[i-count];
	}
	if(count<min)
	{
		min=count;
		small=&word[i-count];
	}
	int x,y;
	for(x=0;x<max;x++)
		cout<<*(big+x);
	cout<<endl;
	for(y=0;y<min;y++)
		cout<<*(small+y);
	cout<<endl;
	return 0;
}
int main(){
	char dc[4000];
	int i, j, k=1, len, zms[201], max=0, min=0, maxnum, minnum;
	gets(dc);
	len=strlen(dc);
	for(i=0;i<len;i++){
		if(dc[i]==' '||dc[i]==','){
			dc[i]=0;
			zms[k]=i;
			k++;
		}
	}
	zms[k]=len;
	maxnum=zms[1];
	minnum=zms[1];
	for(j=1;j<k;j++){
		if(zms[j+1]-zms[j]-1>maxnum){
			maxnum=zms[j+1]-zms[j]-1;
			max=zms[j]+1;
		}
	}
	for(j=1;j<k;j++){
		if(zms[j+1]-zms[j]-1<minnum&&zms[j+1]-zms[j]-1>0){
			minnum=zms[j+1]-zms[j]-1;
			min=zms[j]+1;
		}
	}
	printf("%s\n", &dc[max]);
	printf("%s\n", &dc[min]);
	return 0;
}
int main()
{
	char str[1000];
	char *len[300],*max,*min;
	int i,j=0,k;
	gets(str);
	len[0]=str;
	j++;
	for(i=0;str[i]!='\0';i++){
		if(str[i]==' '){
			str[i]='\0';
			len[j]=str+i+1;
			j++;
		}		
	}
	max=len[0];
	min=len[0];
	for(k=0;k<j;k++){
	    if(strlen(len[k])>strlen(max))
	    max=len[k];
	    if(strlen(len[k])<strlen(min))
	    min=len[k];
     }
		printf("%s\n%s",max,min);
		
	return 0;
}
int main(int argc, char* argv[])
{
    char str[2000];
    int ann[200]={0};

    char arr[200][100];
    int i=0,k=0;
    int j=0,l;
    int m1,m2;
	int len,n;
    gets(str);
  
	len=strlen(str);
    for (l=0;l<=len;l++)
    {
      arr[i][j]=str[l];
      if ((arr[i][j]==32)||(arr[i][j]==44)||(arr[i][j]==0)){
          arr[i][j]=0;
          ann[i]=j;
		  i++;
		  j=-1;
      }
      j++;
	}
	n=i;

    m1=0;
	m2=0;

	for (i=1;i<n;i++) {
		if (ann[m1]<ann[i]) {
			m1=i;
		}
		if ((ann[m2]>ann[i])&&(ann[i]>0)) {
			m2=i;
		}
	}

	//for (i=0;i<n;i++) {
	//	printf("%s %d\n",arr[i],ann[i]);
	//}

	puts(arr[m1]);
    puts(arr[m2]);
   
    return 0;
}
int main(){
char h[1000];
int a,b=0,c=1000,i1,i2,j1,j2,i,len;
gets(h);
len = strlen(h);
int j=-1;
for(i=0;i<len + 1;i++){
	if((h[i]==' ')||(h[i]==',')||(h[i]=='\0')) {
			a=i-j-1;
			if (a > 0) {
        if(a>b){
			b=a;i1=i;j1=j;
		}
		if(a<c){
			c=a;i2=i;j2=j;
		}
			}
		j=i;
		}
	}
	for(i=j1+1;i<i1;i++){
		printf("%c",h[i]);
	}
	printf("\n");
	for(i=j2+1;i<i2;i++){
		printf("%c",h[i]);
	}
	printf("\n");
	return 0;
}
void main()
{char a[100],word[30][20]={'\0'};
int max=0,min=0,flag=0,i,j=-1,k=0,n,numa,num;
gets(a);
numa=strlen(a);
for(i=0;i<numa;i++)
{if(a[i]==' ')
{flag=0;
k=0;
}
else if(a[i]!=' '&&flag==0)
{j++;
	word[j][k]=a[i];

k++;
flag=1;
}
else if(a[i]!=' '&&flag==1)
{word[j][k]=a[i];
k++;
}
}

for(i=1;i<=j;i++)
{if(strlen(word[max])<strlen(word[i]))
max=i;
if(strlen(word[min])>strlen(word[i]))
min=i;
}

puts(word[max]);
puts(word[min]);
}
int main()
{
    char a[200][20],max1[20],min1[20];
    int i,j,flag=0,max,min,p,q;
    for(i=0;;i++){if(flag==1) {a[i][0]='\0';break;}
                  for(j=0;;j++){
                                scanf("%c",&a[i][j]);
                                if(a[i][j]==' ') {a[i][j]='\0';break;}
                                if(a[i][j]=='\n') {a[i][j]='\0';flag=1;break;}
                                }
                                }
    min=strlen(a[0]);
    max=strlen(a[0]);
    strcpy(max1,a[0]);
    strcpy(min1,a[0]);
    for(p=0;p<i;p++){
                     if(strlen(a[p])>max) {max=strlen(a[p]);strcpy(max1,a[p]);}
                     if(strlen(a[p])<min) {min=strlen(a[p]);strcpy(min1,a[p]);}
                     }
    printf("%s\n",max1);
    printf("%s",min1);
    return 0; 
}
void main()
{
	char a[100],b[100][100]={'\0'};
	int l[100]={0};
	int i=0,min=0,max=0,j;

	do
	{
		for(j=0;j<100;j++)
		a[j]='\0';

		scanf("%s",a);
		
		l[i]=strlen(a);

			
		for(j=0;j<l[i];j++)
		b[i][j]=a[j];

		i++;
	}
	while(getchar()!='\n');

for(j=0;j<i;j++)
{
	max=(l[max]>=l[j])?max:j;
	min=(l[min]<=l[j])?min:j;
}



for(i=0;i<l[max];i++)
printf("%c",b[max][i]);

printf("\n");

for(i=0;i<l[min];i++)
printf("%c",b[min][i]);


}
int main()
{
	char str[50*100], word[50][100];
	int i,j,k;
	char max[100],min[100];

	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';

	strcpy(max,word[0]);
	strcpy(min,word[0]);

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

	printf("%s\n",max);
	printf("%s\n",min);

	return 0;
}
int main()
{
	int i,k=0,max=0,min=100,max1,min1;
	char a[500];
	int b[500]={-1},c[500];
	gets(a);
	for(i=0;i<500;i++)
	{
		if(a[i]==' ')
		{
			k++;
			b[k]=i;
		}
		
		
	}
	for(i=0;i<500;i++)
	{
		if(a[i]=='\0')
		{
			k++;
			b[k]=i;
			break;
		}
	}
	
	

	c[0]=b[1];
	
	for(i=1;i<=k;i++)
		c[i]=b[i+1]-b[i]-1;
	for(i=0;i<k;i++)
	{
		if(c[i]>max)
		{
			max=c[i];
			max1=i;
		}
		if(c[i]<min)
		{
			min=c[i];
			min1=i;
		}
	}
	
	for(i=b[max1]+1;i<b[max1+1];i++)
		printf("%c",a[i]);
	printf("\n");
	for(i=b[min1]+1;i<b[min1+1];i++)
		printf("%c",a[i]);
	return 0;
	
	
}