semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{
	char a[250][30],c='a',b[30];
	int i=0,j=0,k=0,l,n,m,x,z,y,d[250],flag;
	while(c!='\n')
	{
		c=getchar();
		if(c!=' '&&c!=','&&c!='\n'){a[i][j]=c;j++;flag=1;}
		if(c==' '&&flag==1||c==','&&flag==1||c=='\n'&&flag==1){a[i][j]='\0';d[i]=j;j=0;i++;flag=0;}	
	}	
     n=i;
    for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
			if(d[i]>d[j]||d[i]==d[j]&&i<=j)k++;
	    if(k==n)break;
		else k=0;	
	}    
    printf("%s\n",a[i]);
k=0;
 for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
			if(d[i]<d[j]||d[i]==d[j]&&i<=j)k++;
	    if(k==n)break;
		else k=0;	
	}    
    printf("%s\n",a[i]);
}
int main()
{
	char str[50][20];
	int i;
	i = 0;
	while ( scanf("%s", str[i]) != EOF )
		i++;
	int n=i-1;
	int a[50],j,k;
	for(i=0;i<=n;i++)
		a[i]=strlen(str[i]);
	int l=0,m=0,b=a[0],c=a[0];
	for(j=1;j<=n;j++)
	{
		if(a[j]>b)
		{
			l=j;
			b=a[j];
		}
		if(a[j]<c)
		{	
			m=j;
			c=a[j];
		}
	}
	printf("%s\n%s\n",str[l],str[m]);
	return 0;
}
int main(){
	char newWord[50];
	char ch;
	char shortest[50];
	char longest[50];
	int slen=1000,llen=0,i,index=0,len,charlen;
	while(1){
		scanf("%s%c",newWord,&ch);
		len=strlen(newWord);
		if(len>llen)
			{
				strcpy(longest,newWord);
				llen = len;
			}
			if(len<slen && len>0)
			{
				strcpy(shortest,newWord);
				slen=len;
			}
		if(ch=='\n')
			break;
	}
	printf("%s\n",longest);
	printf("%s\n",shortest);
	return 0;
}
int main()
{
  char str[300*100];
  int i,j,t[100],c[100],w,f,g,h,k;
  w=0;
  gets(str);
  for(i=0;str[i]!=0&&str[i]!=' ';i++){
	 for(j=i+1;str[j]!=0&&str[j]!=' ';j++);
	                                t[w]=i;
	                                c[w]=j-i;
	                                i=j;
									w++;//????w???????????????????i<w,??i<=w????? 
									}
									f=c[0];
									g=0;
									for(i=0;i<w;i++){
						   if(c[i]>f){
						   			  f=c[i];
						   			  g=i;
									  }
									  }
									  h=c[0];
									  k=0;
							  for(i=0;i<w;i++){
		  					if(c[i]<h){
						   h=c[i];
						   k=i;
						   }
						   }
					for(i=t[g];i<t[g]+c[g]-1;i++){
													printf("%c",str[i]);
													}
													printf("%c\n",str[t[g]+c[g]-1]);
					for(i=t[k];str[i]!=0&&str[i]!=' ';i++){
													printf("%c",str[i]);
													} 						
  
  return 0;
}
/**********************************
/* ?  ?: ??????
/* ?  ?: ???  1200012861
/* ?  ?: 2012?12?24?
**********************************/


int main()
{
	char str[2000];
	int maxLen = 0, minLen = 100, tempLen = 0, i, len, minStart, maxStart;
	cin.getline(str, 2000);
	len = strlen(str);
	for (i = 0; i <= len; i++)
	{
		if (str[i] != ' ' && str[i] != '\0') 
			tempLen++; //??????????????????+1
		else //??????????
		{
			if (tempLen < minLen) //??????????????????? 
			{
				minLen = tempLen; //????
				minStart = i - minLen; //??????????????
			}
			if (tempLen > maxLen) //???????????????????
			{
				maxLen = tempLen; //????
				maxStart = i - maxLen; //??????????????
			}
			tempLen = 0;
		}
	}
	for (i = maxStart; i < maxStart + maxLen; i++)
		cout << str[i];
	cout << endl;
	for (i = minStart; i < minStart + minLen; i++)
		cout << str[i];
	cout << endl;
	return 0;
}
int main()
{
    char s[101];
    char words[100][101];
	int cd[100];

    int i, j, k, x=0,y=0, n;

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

	for(i=0;i<n;i++)
	{
		cd[i]=strlen(words[i]);
	}
	
	k=j=cd[0];

	for(i=1;i<n;i++)
	{
		if(cd[i]>k)
		{
		    k=cd[i];
			x=i;
		}
		else if(cd[i]<j)
		{
		    y=i;
			j=cd[i];
		}
	}
	printf("%s\n%s",words[x],words[y]);
	return 0;




}
int main()
{
	char s[10000];
	int n, i, a = 0, b = 100, a1, b1, sum = 0, t;
	gets(s);
	t = strlen(s);
	for(i = 0; i <= t;i++){
		
		if(s[i] != ' ' && s[i] != '\0'){
			sum = sum + 1;
		}
		else if(s[i] == ' ' || s[i] == '\0'){
			if(sum > a){
				a = sum;
				a1 = i - sum;
			}
			if(sum < b){
				b = sum;
				b1 = i - sum;
				
			}
			sum = 0;
			s[i] = '\0';
		}
	}
	printf("%s\n", s+a1);
	printf("%s\n", s+b1);


	return 0;

}
void main()
{
	int m=0,j=0,i=0,a[50]={0},max,min,maxi,mini;
	char s[50][20];
	while(1)
	{scanf("%s",&s[i]);
	if (getchar()!=' ') break;
	i=i+1;}
	
    for(j=0;j<=i;j++)
		a[j]=strlen(s[j]);

	m=i;
    max=min=a[0];maxi=0;mini=0;
	for(i=0;i<=m;i++)
	{
		if(a[i]>max){max=a[i];maxi=i;}
		if(a[i]<min){min=a[i];mini=i;}
	}
	printf("%s\n",s[maxi]);
		printf("%s",s[mini]);
		
}
int main()
{
	char c, str[50], str1[50], str2[50];
	int max = 0, min = 50, i = 0, j;
	do
	{
		c = cin.get();
		if (c != ',' && c != ' ' && c != '\n')
			str[i++] = c;
		else
		{
			if (i > max)
			{
				j = i;
				max = i;
				while (i > 0)
				{
					i--;
					str1[i] = str[i];
				}
				i = j;
			}
			if (i < min && i != 0)
			{
				min = i;
				while (i > 0)
				{
					i--;
					str2[i] = str[i];
				}
			}
			i = 0;
		}
	}while(c != '\n');
	for (i = 0; i < max; i++)
		cout << str1[i];
	cout << endl;
	for (i = 0; i < min; i++)
		cout << str2[i];
	cout << endl;
	return 0;
}
int main()
{
	char a[200][50];
	int n,i,j,q=0,k;
	int r[200]={0};
	int b[200]={0};
	char c;
	for(i=0;i<=199;i++)
	{
		scanf("%s",a[q]);
		c=getchar();
		if(c=='\n') {break;}
		q++;
	}
	for(j=0;j<q+1;j++)
	{r[j]=strlen(a[j]);
	 b[j]=r[j];
	}
	for(int x1=0;x1<=q-1;x1++)
	{
		for(int x2=x1;x2<=q;x2++)
		{
			if(r[x1]<r[x2])
			{
			    k=r[x1];
				r[x1]=r[x2];
				r[x2]=k;
			}
		}
	}
	for(int w=0;w<=q;w++)
	{
		if(b[w]==r[0])
			{printf("%s\n",a[w]);
		break;}
	}
	for(int e=0;e<=q;e++)
	{
		if(b[e]==r[q])
		{printf("%s",a[e]);
		break;}
	}
	return 0;
}
void main()
{
	int n,i,len[200],max,maxi,min,mini;
	char w[200][50];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%s",*(w+i));
		*(len+i)=strlen(*(w+i));

		//max,min//
		if(!i){
			max=min=*(len+i);
			maxi=mini=i;
		}
		else{
			if(*(len+i)>max){
				max=*(len+i);
				maxi=i;
			}
			if(*(len+i)<min){
				min=*(len+i);
				mini=i;
			}
		}
	}
	//put//
	puts(*(w+maxi));
	puts(*(w+mini));
}
short IsAlpha(char ch)
{
	if (ch>='a'&&ch<='z')
		return 1;
	if (ch>='A'&&ch<='Z')
		return 1;
	return 0;
}

int main()
{
	char input[500], word[50][20];
	int max = 0, min = 0;
	char *pstr = input;
	int n = 0, i;

	gets(input);
	while (*pstr){
		while (!IsAlpha(*pstr))
			pstr++;
		sscanf(pstr, "%s", word[n]);
		pstr += strlen(word[n]);
		n++;
	}
	
	for (i=1; i<n; i++){
		if (strlen(word[i])>strlen(word[max]))
			max = i;
		if (strlen(word[i])<strlen(word[min]))
			min = i;
	}

	puts(word[max]);
	puts(word[min]);

	return 0;
}
int main()
{
	char a[10000];
	int i, max = 0, length, len, j, min;
	cin.getline(a, 300);
	len = strlen(a);
	min = 20;
	length = 0;
	for (i = 0; i <= len; i++)
	{
		if (a[i] != ' ' && a[i] != ',' && a[i] != '\0')
			length += 1;
		if (a[i] == ' ' || a[i] == ',' || a[i] == '\0')
		{
			if (length > max)
				max = length;
			if (length < min && length > 0)
				min = length;
			length = 0;
		}
	}
	length = 0;
	for (i = 0; i <= len; i++)
	{
		if (a[i] != ' ' && a[i] != ',' && a[i] != '\0')
			length += 1;
		if (a[i] == ' ' || a[i] == ',' || a[i] == '\0')
		{
			if (length == max)
			{
				for (j = i - max; j != i; j++)
					cout << a[j];
				cout << endl;
				break;
			}
			length = 0;
		}
	}
	length = 0;
	for (i = 0; i <= len; i++)
	{
		if (a[i] != ' ' && a[i] != ',' && a[i] != '\0')
			length += 1;
		if (a[i] == ' ' || a[i] == ',' || a[i] == '\0')
		{
			if (length == min)
			{
				for (j = i - min; j != i; j++)
					cout << a[j];
				cout << endl;
				break;
			}
			length = 0;
		}
	}

	return 0;
}
int main()
{int n,i;
char a[30],max[30],min[30];
scanf("%d\n",&n);
scanf("%s",a);
strcpy(max,a); strcpy(min,a);
for(i=2;i<=n;i++)
{scanf("%s",a);
if(strlen(a)<strlen(min)) strcpy(min,a);
if(strlen(a)>strlen(max)) strcpy(max,a);
}
puts(max); puts(min);
return 0;
}
int main()
{
    int n, i, max;
	scanf("%d", &n);
	int len[250], a[250];
    char str[250][100];
	for(i=0;i<n;i++)
	{
     scanf("%s", &str[i]);
	 len[i]=strlen(str[i]);
	// printf("%d", len[i]);
      a[i]=len[i];
	}
    int sum=i;
    for(int k=0;k<sum-1;k++)
	{
	for(i=0;i<sum-k-1;i++)
	{	if(len[i]>len[i+1]){max=len[i];len[i]=len[i+1];len[i+1]=max;}}
	}
     for(i=0;i<sum;i++)
    {
		if(a[i]==len[sum-1]){printf("%s\n", str[i]);break;}
	}
	   for(i=0;i<sum;i++)
    {
		if(a[i]==len[0]){printf("%s\n", str[i]);break;}
	}
	return 0;
}
int shifouzimu(char c);
 int longl( char string[]);
 int shortl(char string[]);
void main()
{
    
     int i;char line[1000];
     gets(line);
      for(i=longl(line);shifouzimu(line[i]);i++)
    printf("%c",line[i]);printf("\n");
      for(i=shortl(line);shifouzimu(line[i]);i++)
  printf("%c",line[i]);
}
int shifouzimu(char c)
{  
    if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
    return(1);
     else return(0);
}
  int longl(char string[])
{ 
    int len=0,i,length=0,flag=1,place=0,point;
    for(i=0;i<=strlen(string);i++)
    { 
if (shifouzimu(string[i]))
{
        if(flag)
        {
             point=i;
             flag=0;
         }
      else
         len++;

 }
     else
     {
 flag=1;
         if(len>length)
         {
   length=len;
   place=point;
//    len=0;
         }
 len=0;
      }
}
    return(place);
}

int shortl(char string[])
{
    int len=0,i,length=5,flag=1,place=0,point;
    for(i=0;i<=strlen(string);i++)
{
     if (shifouzimu(string[i]))
 {
        if(flag)
        {
             point=i;
             flag=0;
         }
      else
            len++;
 }

       else
        {
   flag=1;
         if(len<length)
           {
 length=len;
            place=point;
   //        len=0;
            }
 len=0;
          }
   }
        return(place);
}
int main(){
	//char z[200];
	char z[200000];
	int i,k,j;
	int min,max;
	int d,b;
	int a;
	int sz[200];
    int num;
	int x,y;
	int h=0;
    int sx[200];
	x=-1;
	gets(z);
    a=strlen(z);
	for(i=0;i<=a-1;i++)
	{
		if(   (i==0)  &&  ((z[i]==' ') || (z[i]==','))    )
		{
			continue;
		}
		
		if( (    ( (i==0)&&(z[i]!=' ')&&(z[i]!=',') )     ||(  (i!=0)&&((z[i-1]==' ')  ||   (z[i-1]==','))  ))&&(z[i]!=',') &&(z[i]!=' ')    )
		{
			x++;
			sz[x]=1;//????
            sx[x]=i;//?????????
			for(j=i+1;j<=a-1;j++)
			{
				if((z[j]==' ')||(z[j]==','))
				{
					break;
				}
				if((z[j]!=' ')&&(z[j]!=','))
				{
					sz[x]++;
					
					
				}
			}
			
		}
	}
	

	max=0;
	min=1000;
	int maxindex,minindex;
	for(i=0;i<=x;i++)
	{
		if(max<sz[i])
		{
			max=sz[i];
			maxindex=i;
			
		}
		if(min>sz[i])
		{
			min=sz[i];
			minindex=i;
		}
	}
	d = maxindex;
	b = minindex;
//	for(i=0;i<=x;i++){
//		if(sz[i]==max){
//			d=i;
//			break;
//		}
		
//	}

//	for(i=0;i<=x;i++){
//		if(sz[i]==min){
//			b=i;
//			break;
//		}
//	}
	
	for(i=sx[d];i<=sx[d]+sz[d]-1;i++){
		printf("%c",z[i]);
		
	}
	printf("\n");
	for(i=sx[b];i<=sx[b]+sz[b]-1;i++){
		printf("%c",z[i]);
 	}
	
	printf("\n");
	
	return 0;
}
//*****************************************************************
//*??????????? *****************************************
//*??????? 1200012979 **************************************
//*???2012.12.25 ***********************************************
//*****************************************************************
int main()
{
    int i, k = 1, len, min = 30, max = 0, v;
	char a[3200], *p[200], *te=NULL, *yu=NULL,*te1, *yu1;
	p[0] = a;
	for(i = 0; i < 3200; i++)
	{
		cin.get(a[i]);
		if(a[i] == '\n')
		{
			p[k] = a + i;
			break;
		}
		if(a[i]==' '&&a[i-1]!=',')
			p[k++] = a + i;
		if(a[i] == ',')
			p[k++] = a + i;
	}
	for(i = 1; i <= k; i++)
	{
		v = 0;
		if(*p[i-1]==',')
			v = 1;
		if(i != 1)
		{
		  if(p[i] - p[i-1] - 1 - v > max)
		  {
			  max = p[i] - p[i-1] - 1;
			  te = p[i-1]+1+v;
			  te1 = p[i];
		  }
		  if(p[i] - p[i-1] - 1 - v < min)
		  {
			  min = p[i] - p[i-1] - 1 - v;
			  yu = p[i-1]+1+v;
			  yu1 = p[i];
		  }
		}
		else
		{
			if(p[i] - p[i-1] > max)
		    {
			  max = p[i] - p[i-1];
			  te = p[i-1];
			  te1 = p[i];
		    }
		    if(p[i] - p[i-1] < min)
		    {
			  min = p[i] - p[i-1];
			  yu = p[i-1];
			  yu1 = p[i];
		    }
		}
	}
	while(te!=te1)
	{
		cout << *te;
		te++;
	}
	cout << endl;
	while(yu!= yu1)
	{
		cout << *yu;
		yu++;
	}
	cin.get();
	return 0;
}
int main()
{
char b[30],m1[30],m2[30];
int max=0,min=40;
for (int i=0;;i++)
{
scanf("%c",&b[i]);
if (b[i]=='\n'||b[i]==0) 
    {
    b[i]=0;
    if(i>max) {max=i;strcpy(m1,b);}
    if (i<min&&i>0) {min=i;strcpy(m2,b);}
    break;
    }

if (b[i]==' '||b[i]==',') 
    {
    b[i]=0;
    if(i>max) {max=i;strcpy(m1,b);}
    if (i<min&&i>0) {min=i;strcpy(m2,b);}
    i=-1;
    }
}
printf("%s",m1);
printf("\n");
printf("%s",m2);
}
void main()
{
	char str[1000],*p,*q,*max_index,*min_index;
	int len,max=0,min=100000;
	gets(str);
	for(p=q=str;*p;p++)
	{
		if(*p==' ')
		{len=p-q;
		if(len>max)max=len,max_index=q;
		if(len<min)min=len,min_index=q;
		q=p+1; 
		}
		if(*(p+1)=='\0')
		{len=p+1-q;
		if(len>max)max=len,max_index=q;
		if(len<min)min=len,min_index=q;
		}
	}
		while(*max_index!=' '&&*max_index!='\0')
		{
			printf("%c",*max_index);
			max_index++;
		}
		printf("\n");
		while(*min_index!=' '&&*min_index!='\0')
		{
			printf("%c",*min_index);
			min_index++;
		}
}
int main()
{
	char s[10000],a[50][100];
	gets(s);
	int slen,i,j=0,k=0,maxlen,max=0,minlen,min=0;
	slen=strlen(s);
	for(i=0;i<slen;i++)
	{
		if(s[i]!=' ')
		{
			a[j][k]=s[i];
			k++;
		}
		if(s[i]==' ')
		{
			a[j][k]='\0';
			j++;
			k=0;
		}
		if(i==slen-1)
		{
			a[j][k]='\0';
		}
	}
	
	maxlen=strlen(a[0]);
	
	minlen=strlen(a[0]);
	
	for(i=0;i<=j;i++)
	{
		if(maxlen<strlen(a[i]))
		{
			maxlen=strlen(a[i]);
			max=i;
		}
		if(minlen>strlen(a[i]))
		{
			minlen=strlen(a[i]);
			min=i;
		}
	}
	printf("%s\n%s",a[max],a[min]);
	return 0;
}
void main()
{
	char s[1000],c[30],maxw[30],minw[30];
	int i,m=0,max=0,min=30;
	gets(s);
	for(i=0;i<strlen(s)+1;i++)
	{
		c[m]=s[i];
		m++;
		if((s[i]==' ')||(s[i]=='\0'))
		{
			c[m-1]='\0';
			if((m-1)>max)
			{
				max=m-1;
				strcpy(maxw,c);
			}
			if((m-1)<min)
			{
				min=m-1;
				strcpy(minw,c);
			}
			m=0;
		}
	}
	printf("%s\n%s",maxw,minw);
}
int main()
{
	int max,min;
	int n,i,b,c;
	int len;
	char str[200][20];
	char x[500];
	gets(x);
	int totalLen=strlen(x);
	x[totalLen]=' ';
	x[totalLen+1]='\0';
	int begin=0,end;
	len=0;
	for (i=0;i<=totalLen;i++)
	{
		if(x[i]==' ')
		{
			end=i;
			strncpy(str[len],&x[begin],end-begin);
			str[len][end-begin]='\0';
			len++;
			begin=i+1;
		}
	}
	max=0;
	min=100;
	for (i=0;i<len;i++)
	{
		if(strlen(str[i])>max){
			max=strlen(str[i]);
			b=i;
		}
		if(strlen(str[i])<min){
			min=strlen(str[i]);
			c=i;
		}
	}
	printf("%s\n%s",str[b],str[c]);
         return 0;
}
int main()
{
	char str[1001];
	int i,j,s=0,max=0,min=0,begin1,end1,begin2,end2,t;
	gets(str);
	for(t=0;t<strlen(str);t++)
	{
		if(str[t]!=' '&&str[t]!=','&&t!=strlen(str)-1)
			s++;
		else if(t==strlen(str)-1) s++;
		if(str[t]==' '||str[t]==',')
		{
			end1=t-1;end2=t-1;
			begin1=0;begin2=0;
			max=s;min=s;goto p;
		}
		else if(t==strlen(str)-1)
		{
			end1=t;end2=t;
			begin1=0;begin2=0;
			max=s;min=s;goto loop;
		}
	}
p:
	for(i=t;i<strlen(str);i++)
	{
		if(str[i]!=' '&&str[i]!=','&&i!=strlen(str)-1)
			s++;
		else if(i==strlen(str)-1) s++;
		if(str[i]==' '||str[i]==',')
		{
			if(s>max)
			{
				end1=i-1;max=s;
				for(j=end1;;j--)
				{
					if((str[j]!=' '&&str[j]!=',')&&(str[j-1]==' '||str[j-1]==',')) {begin1=j;break;}
				}
			}
			else if(s<min&&s>0)
			{
					end2=i-1;min=s;
				    for(j=end2;;j--)
					{
						if((str[j]!=' '&&str[j]!=',')&&(str[j-1]==' '||str[j-1]==',')) {begin2=j;break;}
					}
			}
			s=0;
		}
		else if(i==strlen(str)-1)
			{
			if(s>max)
			{
				end1=i;max=s;
				for(j=end1;;j--)
				{
					if((str[j]!=' '&&str[j]!=',')&&(str[j-1]==' '||str[j-1]==',')) {begin1=j;break;}
				}
			}
			else if(s<min&&s>0)
			{
					end2=i;min=s;
				    for(j=end2;;j--)
					{
						if((str[j]!=' '&&str[j]!=',')&&(str[j-1]==' '||str[j-1]==',')) {begin2=j;break;}
					}
			}
			s=0;
		}
	}
loop:
	for(i=begin1;i<=end1;i++) printf("%c",str[i]);
	printf("\n");
	for(i=begin2;i<=end2;i++) printf("%c",str[i]);
}
void main()
{
	char a[5000]={""},b[200][20]={0};
	int i,j,n,k,l,m,s,max,min,num[200]={0};
    scanf("%d\n",&m);
	gets(a);

	for(k=0,i=0,j=0;a[k]!=0;k++)
		if(a[k]==' '||a[k]==',')
		{
			num[i]=j;
			i++;
			j=0;
		}
		else 
		{
			b[i][j]=a[k];
			j++;
		}
	
		num[i]=j;
		n=i;
	    l=s=0;
		max=min=num[0];
	
	for(i=1;i<=n;i++)
		if(num[i]>max)
		{
			max=num[i];
			l=i;
		}
		else if(num[i]<min&&num[i]>0)
		{
			min=num[i];
			s=i;
		}
	
	puts(b[l]);
	puts(b[s]);

}
int p,q;
int main()
{   
	int choose(int*,int);
	char ss[50][100];
	int i,n,a[50];
	for(i=0;scanf("%s",ss[i])!=EOF;i++)
	{;}
	n=i;
	for(i=0;i<n;i++)
	{a[i]=strlen(ss[i]);}
	choose(a,n);	
	printf("%s\n%s",ss[p],ss[q]);
}

int choose(int *a,int n)
{   
	int i,max,min;
    max=0;
	min=a[0];
	p=0;
	q=0;
    for(i=0;i<n;i++)
	{if(a[i]>max)
	{max=a[i];p=i;}
	if(a[i]<min)
	{min=a[i];q=i;}
	}
	return 0;
}
struct strnu {char a[50];int n;}t[200];
int max(struct strnu e[200],int p)
{
	int i,mx=e[0].n,k=0;
	for(i=0;i<=p;i++)
	{
		if(e[i].n>mx)
		{mx=e[i].n;k=i;}
	}return k;
}
int min(struct strnu e[200],int p)
{
	int i,mn=e[0].n,k=0;
	for(i=0;i<=p;i++)
	{
		if(e[i].n<mn)
		{mn=e[i].n;k=i;}
	}return k;
}

	
void main()
{	int i;
	char b;
	for(i=0;;i++)
	{
		scanf("%s",t[i].a);
		b=getchar();
		t[i].n=strlen(t[i].a);		
		if(b=='\n')break;
	}
	printf("%s\n",t[max(t,i)].a);
	printf("%s",t[min(t,i)].a);
}
int main()
{
	char letter[1000];
	char word[50][20];
	gets(letter);
	int length,i,j=0,k=0,tmp1,tmp2,tmp;
	int maxlength=0,minlength=0;
	length=strlen(letter);
    
	for(i=0;i<length;i++)
	{
		if(letter[i]!=' ')
		{
			word[j][k]=letter[i];
			k++;
		}
        if(letter[i]==' ')
		{
			word[j][k]='\0';
			j++;
			k=0;
			
		}
		if(i==length-1)
		{
			word[j][k]='\0';
		}

	}
	

	tmp1=strlen(word[0]);
	tmp2=strlen(word[0]);

	for(i=1;i<=j;i++)
	{
		tmp=strlen(word[i]);
		if(tmp1<tmp)
		{
			tmp1=tmp;
			maxlength=i;
		}
		if(tmp2>tmp)
		{
			tmp2=tmp;
			minlength=i;
		}
	
			
	}
	printf("%s\n",word[maxlength]);
	printf("%s\n",word[minlength]);



		return 0;
}
/*?????????(???500???????????150)????????????? 

???????????????????????????????????????????????????????????? NO ??? 
????????????????????????????????????????????????????????????????????????????????? 


??????6??? 
6,2,4,2,3,3 
2?3??????????2??????2???????????2????????????3????????(3+3)/2? 
????? 
1,2,4,2,5,3,6 
????2?????3? 
????? 
2,2,2,2,2,2,2 
???? NO?????2 

 
???? 
?1????????????? 
?????????????????????????????? 

 
???? 
????????????????????????????????????NO??? 
?????????????????????(x1+x2)/2????x1 <= x2 

void bubble (int b[][501],int num[],int n)
{
	int i,j,mid,k;
	for(k=0;k<n;k++)
	{
		for(i=1;i<num[k];i++)
		{  
			for(j=1;j<=num[k]-i;j++)
			{  
				if(b[k][j-1]>b[k][j])
				{
					
					mid=b[k][j-1];
					b[k][j-1]=b[k][j];
					b[k][j]=mid;
				}
			}
		}
	}
	

}
int main()
{int n=0,i,j,k,max;
int a[50][501]={0},num[100]={0},c[500]={0};
int zhong[100]={0};
char c1;
scanf("%d",&n);
for(i=0;i<n;i++)
{
	for(;;)
	{
		scanf("%d", &a[i][num[i]++]);
		scanf("%c", &c1);
		if(c1!= ',')
			break;
	}

}
for(i=0;i<n;i++)
{
	for(k=0;k<num[i];k++)
	{
		
				c[k]=0;
	
	}
	for(k=0;k<num[i];k++)
	{
		for(j=k+1;j<num[i];j++)
		{
			if(a[i][j]==a[i][k])
				c[k]++;
		}
	}
	if(c[0]!=num[i]-1)
	{
		max=c[0];
		zhong[i]=a[i][0];
		for(k=1;k<num[i]-2;k++)
		{
			if(c[k]>max)
			{
				max=c[k];
				zhong[i]=a[i][k];
			}
		}
	}



}


	bubble(a,num,n);

for(i=0;i<n;i++)
{
	if(zhong[i]==0)
	{
		if(num[i]%2==0)
			printf("mode=NO,median=(%d+%d)/2\n",a[i][(num[i]-1)/2],a[i][(num[i]+1)/2]);
		else
					printf("mode=NO,median=%d\n",a[i][num[i]/2]);

	}
	else
		{
		if(num[i]%2==0)
			printf("mode=%d,median=(%d+%d)/2\n",zhong[i],a[i][(num[i]-1)/2],a[i][(num[i]+1)/2]);
		else
					printf("mode=%d,median=%d\n",zhong[i],a[i][num[i]/2]);

	}
	
}






return 0;
}
*/

int main()
{char a[200][50],*p;
int length[200]={0};
int i,j,n,max=0,min=100,n1,n2;


scanf("%d\n",&n);
for(i=0;i<n;i++)
{
	for(j=0;;j++)
	{scanf("%c",*(a+i)+j);
	if(*(*(a+i)+j)==' '||*(*(a+i)+j)=='\n')
	{*(*(a+i)+j)='\0';
		break;}
	else 
		(*(length+i))++;
	}

}
for(i=0;i<n;i++)
{
		if((*(length+i))>max)
		{
			max=*(length+i);
			n1=i;
		}
				
			if((*(length+i))<min)
		{
			min=*(length+i);
			n2=i;
			}
}
  printf("%s\n%s",a+n1,a+n2);

  return 0;
}
int main()
{
	int s=0,i,j=0,n=0,a=0,b=0,x=0,y=0,sz[1000];
	char z[1000],f[1000][100];
	gets(z);
	s=strlen(z);
	for(i=0;i<=s;i++){
		if(z[i]==' '||z[i]=='\0'){
			f[n][j]='\0';
			n++;
			j=0;
			continue;
		}
		f[n][j]=z[i];
	    j++;
	}
	f[n][j]='\0';

	for(i=0;i<=n;i++){
		sz[i]=strlen(f[i]);
	}
	a=sz[0];
	b=sz[0];
	for(i=0;i<n;i++){
		if(a<sz[i]){
			a=sz[i];
			x=i;
		}
		if(b>sz[i]){
			b=sz[i];
			y=i;
		}
	}
	printf("%s\n",f[x]);
	printf("%s\n",f[y]);
	return 0;
}
int main()
{   
    char zfc[10000];
    int n,j=0,i=0,k=-1,len[10000]; 
    int max,min,sum=0;
    gets(zfc);
    n=strlen(zfc);
    for(j=0;j<n;j++)
    {   
        len[j]=-1;
        for(i=k+1;i<n;i++)
        {   
            len[j]++;
            if(zfc[i]==32)
            {
               break;
            }
            if(i==n-1)
            {
               len[j]++;
            }
        }
        k=i;
        if(k==n)
        {
           break;
        }
    }
    j++;
    for(i=0;i<j;i++)
    {
        for(k=0;k<j;k++)
        {
            if(len[i]>len[k])
            {
               break;
            }
            else
            {
                min=i;
            }
        }
        if(k==j)
        {
           break;
        }
    }
    for(i=0;i<j;i++)
    {
        for(k=0;k<j;k++)
        {
            if(len[i]<len[k])
            {
               break;
            }
            else
            {
                max=i;
            }
        }
        if(k==j&&len[i]>=len[k])
        {
           break;
        }
    }
    if(max==0)
    {
       for(i=0;i<len[max];i++)
       {
           printf("%c",zfc[i]);
       }
    }
    else
    {
        for(i=0;i<max;i++)
        {
            sum=sum+len[i]+1;
        }
        for(i=sum;i<sum+len[max];i++)
        {
           printf("%c",zfc[i]);
        }
    }
    printf("\n");
    sum=0;
    if(min==0)
    {
       for(i=0;i<len[min];i++)
       {
           printf("%c",zfc[i]);
       }
    }
    else
    {
        for(i=0;i<min;i++)
        {
            sum=sum+len[i]+1;
        }
        for(i=sum;i<sum+len[min];i++)
        {
           printf("%c",zfc[i]);
        }
    }
    return 0;
}
void main()
{
   char s[4000],*ps,ss[200][20];
   memset(ss,0,200);
   int max,min,i=0;
   int k=0;
   gets(s);
   for(ps=s;*ps!='\0';ps++)
   {
    if(*ps!=' ')
    {
		if(*ps!=',' )
		{
		ss[k][i]=*ps;
		i++;
		}
    }
    else{
     k++;
     i=0;
    }
   }
    max=0;
    min=0;
    for(i=0;i<=k;i++)
    {
     if(strlen(ss[i])>strlen(ss[max]))
     max=i;
     else if(strlen(ss[i])<strlen(ss[min]))
     min=i;
    }
   puts(ss[max]);
   puts(ss[min]);
}
void main()
{
    char str[5000]={'0'},w[50][100]={'0'};
    int i=0,k=0,j=0,t[50],p[50],b[50];
    gets(str);
    for(i=0;str[i]!='\0';i++)
    {
    	if(str[i]!=' ')
    	{w[k][j]=str[i];
    	j++;
    	}
        else {k++;j=0;}
    }
    for(i=0;i<=k;i++)
    {b[i]=strlen(w[i]);
    }
    for(i=0;i<=k;i++)
    {   t[i]=0;
    	for(j=0;j<=k;j++)
    	if(b[i]<b[j])
    	t[i]=1;
    }
    for(i=0;i<=k;i++)
    {if(t[i]==0)
    {printf("%s\n",w[i]);
    break;}
    }
    for(i=0;i<=k;i++)
    {   p[i]=0;
    	for(j=0;j<=k;j++)
    	if(b[i]>b[j])
    	p[i]=1;
    }
    for(i=0;i<=k;i++)
    {if(p[i]==0)
    {printf("%s\n",w[i]);
    break;}
    }    
}
void main()
{char a[1000]={'\0'},c[50][20]={'\0'};int b,i,j,k,l,m,n,r=0,s,t,w;
gets(a);
b=strlen(a);
w=0;
for(i=0;i<b;i++)
{if(a[i]==' ') w=0;
 else if(w==0) {w=1;j=i;for(k=j,s=0;a[k]!=' '&&a[k]!='\0';k++,s++) c[r][s]=a[k];r++;}}
t=r;


m=strlen(c[0]);
for(r=0;r<t;r++)
{l=strlen(c[r]);
 if(l>m) m=l;}
for(r=0;r<t;r++)
{l=strlen(c[r]);
 if(l==m) {puts(c[r]);break;}}

n=strlen(c[0]);
for(r=0;r<t;r++)
{l=strlen(c[r]);
 if(l<n) n=l;}
for(r=0;r<t;r++)
{l=strlen(c[r]);
 if(l==n) {puts(c[r]);break;}}
}