semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{
	char str[100][100];
	char str1[100];
	int i=0;
    gets(str1);
	int b=0;
	int p=strlen(str1);
    for(;i<p;i++)
	{	if(str1[i]==' ') b=b+1;}
    b=b+1;
    int j=0,k=0;
    for(i=0;i<p;i++)
	{
		
	    if(str1[i]!=' ')
		{str[j][k]=str1[i];k++;  }
        if(str1[i]==' ')  {str[j][k]='\0';j=j+1;k=0;}

	}
	str[j][k]='\0';
	
	for(;j>=1;j--)
	{
		for(k=0;;k++)
		{
			if(str[j][k]!='\0') printf("%c",str[j][k]);
			if(str[j][k]=='\0') break;
		}
		printf(" ");
	}
	for(;j>=0;j--)
	{	for(k=0;;k++)
		{
			if(str[j][k]!='\0') printf("%c",str[j][k]);
			if(str[j][k]=='\0') break;
		}
	}
}
int main()
{
	int i,j,k,a[105];
	char str[102];
	cin.get(str,102,'\n');
	a[0]=strlen(str);
	k=0;
	for(i=a[0];i>0;i--)
	{
		if(str[i]==' ')
		{
			k++;
			a[k]=i;
			for(j=a[k]+1;j<a[k-1];j++)
				cout <<str[j];
			cout <<' ';
		}

	}
	for(i=0;i<a[k];i++)
		cout <<str[i];
	cout <<endl;
	return 0;
}
int main()
{
    int l,i,t[100],k;      //???????????????.
    char st[150];
    gets(st);
    l=strlen(st);
    k=1;
    t[0]=-1;
    for (i=0;i<l;i++)
    {
        if (st[i]==' ') 
        {
            t[k]=i;      //?????????
            k++;
        }
    }
    t[k]=l;
    for (i=k;i>0;i--) 
    {
        for(int j=t[i-1]+1;j<=t[i]-1;j++) cout<<st[j];
        if (i!=1) cout<<" ";     //?????????,????????????
    }
    cout<<endl;
    return 0;
}
void main()
{
	char a[100];
	char *p;
	int n,j,i,t;
	p=gets(a);
	n=strlen(a);
	t=0;
	for(i=n-1;i>=0;i--)
	{
		if(*(p+i)!=' ') t++;
		if(*(p+i)==' ')
		{
			for(j=1; j<=t; j++)
			{
				printf("%c",*(p+i+j));
			}
			printf(" ");
			t=0;
		}
		if(i==0)
		{
			for(j=0; j<=t-1;j++)
			{
				printf("%c",*(p+i+j));
			}
			printf("\n");
		}
	}
}
void main()
{
	int n,i;
	char a[100];
	char *p1,*p2;
	gets(a);
	n=strlen(a);
	p1=&a[n-1];
	p2=&a[n-1];
    char *p=p1;
	for(i=n-1;i>=0;i--)
	{
		p1=&a[i];
		if(*p1==' ')
		{
			for(p=p1+1;p<=p2;p++)
				printf("%c",*p);
			printf(" ");
			p2=p1-1;
		}
		if(p1==a)
			for(p=p1;p<=p2;p++)
				printf("%c",*p);
	}
}
int main()
{
	char a[120];
	
	char b[100][100];
	int i=0,sum=1,j=0,k=-1;
	cin.getline(a,120);
	for(i=0;i<120;i++)
		if(a[i]==' ')
			sum++;
	for(i=0;i<sum;i++)
		for(j=0;j<100;j++)
		{k++;
		if(a[k]!=' ')
			b[i][j]=a[k];
		else
		{
			b[i][j]='\0';
	         break;
		}
		}
		for(i=sum-1;i>=0;i--)
			if(i==0)
			cout<<b[i]<<endl;
			else
				cout<<b[i]<<" ";
		return 0;
}
void main()
{
	int n,i,j,x;
	char a[100],b[100]="\0";
	gets(a);
	n=strlen(a);
	x=n;
	for(j=n-1;j>=0;j--)
	{
		if (a[j]==' ')
		{
			for (i=j+1;i<x;i++)
			{
				b[n-x-1+i-j]=a[i];	
			}
			x=j;
			b[n-1-j]=a[j];
		}
	}
	if (j<0)
		for (i=0;i<x;i++)
			b[n-x+i]=a[i];
	printf("%s",b);
}
int main()
{
	char sentence[100];
	char a[100][100];
	int i,j=0,k=0;
	cin.get(sentence,100,'\n');
	for(i=0;;i++)
	{
		if(sentence[i]=='\0') 
		{
			
			a[k][j]='\0';
			k++;
			break;
		}
		
		if(sentence[i]!=' ')
		{
			a[k][j++]=sentence[i];
		}
		else
		{
			a[k][j]='\0';
			j=0;
			k++;
		}
	}
	for(i=k-1;i>0;i--)
	{
		for(j=0;a[i][j]!='\0';j++)
		{
			cout<<a[i][j];
		}
		cout<<" ";
	}
	for(j=0;a[0][j]!='\0';j++)
	{
		cout<<a[0][j];
	}
	return 0;
}
void main()
{
	char s[101];
	char *p1,*p2;

	gets(s);
	p1=s+strlen(s);
	while(p1+1>s){
		for(p2=p1,*p2=0;*p1!=' '&&p1>=s;p1--){
			;
		}
		if(p1+1>s){
			printf("%s",p1+1);
			putchar(' ');
		}
		else puts(s);
	}
}
int main()
{
	char a[100]={0};//????
	int m[100]={0},i,j,k,n,s=0,l;//???????
	cin.get(a,100);//??????
	l=strlen(a);//???????
	m[0]=0;//?m[0]=0
	for(i=0,j=1;i<100;i++)
	{
		if(a[i]==32)
		{
			m[j]=i;//??a[i]????m[j]=i
		    j=j+1;//j=j+1
		}
	
	}
	if(j>1)//??j>1
	{
		for(k=m[j-1]+1;k<=l-1;k++)
			if(a[k]>=65&&a[k]<=122)
				cout<<a[k];//??a[k]??????
		cout<<" ";//????
	}
	if(j==1)//??j=1
	{
		for(k=0;k<=l-1;k++)
			if(a[k]>=65&&a[k]<=122)
				cout<<a[k];//??a[k]
	}
    for(n=j-2;n>=1;n--)
	{
		for(k=m[n];k<=m[n+1];k++)
			if(a[k]>=65&&a[k]<=122)
			  cout<<a[k];//??a[k]??????
		cout<<" ";//????
	}
	for(k=m[0];k<=m[1]-1;k++)
		if(a[k]>65&&a[k]<=122)
		    cout<<a[k];//??a[k]??????
	return 0;
}
void main()
{
  char a[100];
  gets(a);
  int i,j=0,k;
for(i=0;i<100;i++)
{
	j++;
	if(a[i]=='\0')
	{
     j-=1;
	 break;
	}
}
  for(i=j-1;i>=0;i--)
  {     
	  if(a[i]==' ')
	  {
		  for(k=i+1;k<j;k++)
		  printf("%c",a[k]);
		  printf(" ");
	      j=i;
	  }
  }
  for(i=0;i<j;i++)
	  printf("%c",a[i]);


}
void main()
{
	int i,j,n;
	char str[100][100],(*p)[100],temp[100];
	p=str;
	for(i=0;(scanf("%s",*(p+i)))!=EOF;i++)
		;
	n=i;
	
	for(i=0;i<(n/2);i++)
	{strcpy(temp,*(p+i));strcpy(*(p+i),*(p+n-1-i));strcpy(*(p+n-1-i),temp);}
	for(i=0;i<(n-1);i++)
	    printf("%s ",*(p+i));
    printf("%s",*(p+n-1));
	
}
void main()
{
	int l,i,j=0,k=0;
	char s[100],a[100],*p,*q;
	gets(s);
	l=strlen(s);
	p=s;q=a;
	for(i=l-1;i>=0;i--)
	{
		if(s[i]==' ')
			s[i]=0;
	}
	for(i=l-1;i>=0;i--)
	{
		if(s[i]==0)
		{
			strcpy(q+j,p+i+1);
			j=l-i;
		}
		if(i==0)
		{
			strcpy(q+j,p);
		}
	}
	for(i=0;i<l;i++)
		if(a[i]==0)
			a[i]=' ';
	printf("%s\n",a);
}
void main()
{
	char s[100];
	char *p,*q,*f;
	int n;
	gets(s);
	n=strlen(s);
	p=s+n-1;
	q=s+n;
	for(p=s+n-1;p>=s;p--)
    {
		if(*p==' ')
		{
			for(f=p+1;f<q;f++)
			{printf("%c",*f);}
			printf(" ");
			q=p;
		}
	}
	p=s;
	for(p=s;;p++)
	{
		if(*p!=' '&&*p!='\0')
		printf("%c",*p);
		else
		break;
	}
	s[n]='\0';
}
void main()
{
	char a[80][20],*p[80],**q,t;
	int i;
	for(i=0;i<=79;i++)
		p[i]=a[i];
	for(q=p;;q++)
	{
		scanf("%s",*q);	
		t=getchar();
		if(t!=' ') break;
	}
	for(;q>=p+1;q--)
		printf("%s ",*q);
	printf("%s",*q);
}
main()
{
	char (*a)[100],c[100][100];
	int i;
	a=c;
	for(i=0;;i++)
	{scanf("%s",c[i]);
	if(getchar()=='\n') break;}
	for(a=c+i;a!=c;a--)
		printf("%s ",*a);
       printf("%s",*a);
}
void main()
{
	int n,i,j;
	char str[10000],*p=str;
	gets(p);
	n=strlen(p);
	*(p+n)=' ';
	for(i=n-1;i>=0;i--)
	{
		if(*(p+i)==' ')
		{
			for(j=i+1;*(p+j)!=' ';j++)
				printf("%c",*(p+j));
			printf(" ");
		}
	}
	for(j=0;*(p+j)!=' ';j++)
		printf("%c",*(p+j));	
}
int main()
{
	char str[101],str1[101]={'a'};
	int len,i,j,a,k,b=0;
	gets(str);
	len=strlen(str);
	for(j=0;j<len;j++)
		if(str[j]==' ')
			break;
	if(j==len)
		printf("%s",str);
	else

	{
		for(j=len-1;j>=0;j--)
		if(str[j]==' ')
		{	j--;
		continue;}
	else break;
	for(i=j;i>=0;i--)
		if(str[i]==' ')
		{
			a=i;
			for(j=i+1,k=b;(str[j]!=' ')&&(j<len);j++,k++)
				str1[k]=str[j];
			str1[k]=' ';
			b=k+1;
		}
	
	for(i=0;i<a;i++,k++)
       str1[k+1]=str[i];
    printf("%s",str1);

	}
	return 1;
}
main()
{ int i,j,w,t=0,c[100]={0};
  char s[101],a[100][100];
  gets(s);
  if(s[0]==' ')w=0;
  else w=1;
  for(i=1;s[i-1]!='\0';i++)
  {  if(w==1)
      {a[t][c[t]]=s[i-1];
       c[t]++;
       if(s[i]!=' ')w=1;
       else w=0;
       continue;
      }
     if(w==0)
     { if(s[i]!=' '){t++;w=1;}
     }
  }
  for(i=t;i>=0;i--)
  { for(j=0;j<c[i];j++)
     printf("%c",a[i][j]);
    if(i>=1)printf(" ");
  }
}
void main()
{
  char s[10000];
  int n=0,q=0,i,j,num[100],point[10000];
  gets(s);
  for(i=0;i<strlen(s);i++)
	  if (s[i]!=' ') { if (q==0)  {q=1;n++;num[n]=1;point[n]=i;}
	  else num[n]++;}
	  else q=0;
 for (i=n;i>=1;i--)
 {for (j=0;j<num[i];j++)
		 printf("%c",s[point[i]+j]);
 if (i>1) printf(" ");}
}
void main()
{
	char a[50][1000],p;
	int i=0,count;
	do
	{
		i++;
		scanf("%s%c",a[i],&p);
	}while(p!='\n');
	count=i;
	for(i=count;i>=2;i--)
	{
		printf("%s ",a[i]);
	}
	printf("%s",a[1]);
}
int main()
{
    int i,j=0,p=0;
    char a[50][50];
   for(i=0;i<50;i++){
   for(j=0;j<50;j++)
   {scanf("%c",&a[i][j]);
   if(a[i][j]==' '||a[i][j]=='\n') break;}
   if(a[i][j]==' ') a[i][j]='\0';
   if(a[i][j]=='\n') {a[i][j]='\0';break;}
}
   printf("%s",a[i]);
   for(p=i-1;p>=0;p--)
   printf(" %s",a[p]);
   return 0;
}
int main()
{
    int i,j,k,len,word=1;
    char a[100];
    char b[50][20];
    for(i=0;i<50;i++)
        for(j=0;j<20;j++)
            b[i][j]='!';
    fgets(a,100,stdin);
    len=strlen(a)-1;
    for(i=0;i<len;i++)
    {
        if(a[i]==' ')
            word++;
        else
            ;
    }
    j=0;
    k=0;
    for(i=0;i<len;i++)
    {
        if(a[i]!=' ')
        {
            b[word-1-j][k]=a[i];
            k++;
        }
        else
        {
            j++;
            k=0;
        }
    }

    for(i=0;i<=word;i++)
    {
        for(j=0;b[i][j]!='!';j++)
            printf("%c",b[i][j]);
        if(i<word-1)
            printf(" ");
    }
    return 0;
}
/*
 *????reversal.cpp
 *??:???
 *?????2012-11-10
 *???????
 */



int main()
{
	int i,j,n=-1;
	char temp[101],word[101][101]; // word????
	while (cin >> temp)
		strcpy(word[++n],temp); // ?????????
	for (i=0,j=n;i<j;i++,j--) // ?????
	{
		strcpy(temp,word[i]); // ??
		strcpy(word[i],word[j]);
		strcpy(word[j],temp);
	}
	for (i=0;i<n;i++) // ??
		cout << word[i] << ' ';
	cout << word[n] << endl;
    return 0;
}
void main()
{
	char s[100][15],t[150];
	int i,j=0,k=0,m;
	gets(t);
	s[0][0]=t[0];
	for(i=1;i<strlen(t);i++)
	{
		if(t[i]!=' '&&t[i-1]==' ')
		{    k=0;
			j++;
			s[j][k]=t[i];
		}
		if(t[i]!=' '&&t[i-1]!=' ')
		{
			k++;
			s[j][k]=t[i];
		}
		if(t[i]==' ') s[j][k+1]='\0';
	}
	s[j][k+1]='\0';

	m=j;
	for(m=j;m>=1;m--)
	{
		printf("%s ",s[m]);
	}
	printf("%s",s[0]);
}
int main()
{
	char a[100]=" ";                                                       //a???????
	int b[100]={0};                                                        //b???????????,????0
	int s=1;                                                               //s????????
	gets(a);                                                               //?????
	for(int i=0;i<100;i++)
	{
		if(a[i]==' ')                                                      //????????????
		{
			s++;                                                           //?s+1
		}
		else if(((a[i]>='a')&&(a[i]<='z'))||((a[i]>='A')&&(a[i]<='Z')))    //?????????
		{
			b[i]=s;                                                        //????????
		}
	}
	while(s)                                                               //??s???,????s?
	{
		for(int i=0;i<100;i++)                                             //????b
		{
			if(b[i]==s)                                                    //??????
			{
				cout<<a[i];
			}
		}
		s--;                                                               //???s-1
		if(s!=0)                                                           //??????
		{
			cout<<' ';
		}
	}
	return 0;
}
/*
 *  Name:andian.cpp
 *
 *  Created on: 2012-11-05
 *  Author: ??
 *  Function?????
 */


int main()
{
	char a[100];
	int i, j, length, flag;
	cin.getline(a,100);
	length=strlen(a);
	flag=length;
	for (i=length-1;i>=0;i--){
		if (a[i]==' '){
			if (flag!=length)
				cout<<' ';
			for (j=i+1;j<=flag-1;j++){
				cout<<a[j];
			}
			flag=i;
		}
		if (i==0){
			if(flag!=length)
				cout << ' ';
			for (j=0;j<=flag-1;j++){
				cout<<a[j];
			}
		}
	}
	return 0;
}
void main()
{
      char s[100];//????????????//
	  char data[200][100];
	  char c;
	  int k=0,h=0;
	  scanf("%s",s);
	  strcpy(data[k++],s);
	  while((c=getchar())!='\n')
	  {
		  scanf("%s",s);
		  strcpy(data[k++],s);
	  }
	  for(h=k-1;h>=0;h--)
	  {
		  if(h==0)printf("%s\n",data[0]);
		  else printf("%s ",data[h]);
	  }
}
int main()
{
  char ch[50][100];
  int n = 0;
  for (cin >> ch[n]; ch[n][0] != '\n' && ch[n][0] != '\0';)
  {
    n++;
    cin >> ch[n];
  }
  
  for (n--; n >= 0; n--)
  {
    cout << ch[n];
    if (n > 0) cout << ' ';
  }
  return 0;
}
main()
{
	char a[101];
	char b[101]={0};
	gets(a);
	int l,i,m,j;
	int k=0;
	l=strlen(a);
	m=l;
	for(i=l-1;i>=0;i--)
	{
		if(a[i]==' ')
		{
			for(j=i+1;j<m;j++)
			{
				b[k]=a[j];
				k++;
			}
			b[k]=' ';
			k++;
			m=i;
		}
		if(i==0)
		{
			for(j=i;j<m;j++)
			{
				b[k]=a[j];
				k++;
			}
		}
	}
	puts(b);
}
int main ()
{
	char a[100][20],b[100],c;
	int i=0,j=0,k=0,m,n;
	b[0]=0;
	while((c=getchar())!='\n')
	{
	         if(c!=' ' )
	          {
			      a[i][j]=c;
			      j++;
				  b[i]++;
		       }
			 else 
			   {
				i++;
				b[i]=0;
				j=0;
			   }
	}
	for(m=i;m>=0;m--)
	{ 
		if(m>0)
	      {
		   for(n=0;n<b[m];n++)
		      cout<<a[m][n];
		   cout<<" ";
		  }
		else 
			for(n=0;n<b[m];n++)
				cout<<a[m][n];
	}
	return 0;
}
void main()
{
	int i=0;
	char a[10][10];
	scanf("%s",a[i]);
		for(i=1;getchar()!='\n';i++)
			scanf("%s",a[i]);
		for(i=i-1;i>=0;i--)
		{
			if(i==0)
			printf("%s",a[i]);
			else
			printf("%s ",a[i]);
		}
}
void main()
{
    char string[100];
	int i,k=0,j=0,n=0,a[100]={0};
    gets(string);
	for(i=0;i<100;i++)
	{
		if(string[i]!='\0')n++;
	else break;
	}
	for(i=n-1;i>=0;i--)
	{
		if(string[i]!=' ')a[k]++;
	    else k++;
	}

	
	for(j=0;j<k;j++)
	{
		for(i=n-a[j];i<n;i++)
		{printf("%c",string[i]);}
	    n=n-a[j]-1;
		printf(" ");
	}
	for(i=n-a[j];i<n;i++)
		{printf("%c",string[i]);}
		 
	
}
void main(){
	int i,j;
	char some[30][30],it[30];
	for(i=0;i<30;i++){
		scanf("%s",&some[i]);
		scanf("%c",&it[i]);
		if(it[i]=='\n')
			break;
	}
	for(j=0;j<=i;j++){
		printf("%s",some[i-j]);
		if(j!=i)
			printf(" ");
	}
}
int main()
{
	char a[1000],b[100][100];
	int i=0,j=0,l=0;
	cin.getline(a,1000);
	int k=strlen(a);
    for(i=0;i<k;i++)
	{
		if(a[i]==' ')
		{
			j++;
			l=0;
		    i++;
		}
		b[j][l]=a[i];
		l++;

	}
    

    for(i=0;i<j;i++)
    	cout<<b[j-i]<<" ";
    cout<<b[0];

    return 0;
}
void main()
{
	char a[100][100],c;
	int n,i,k;
	for(i=0;;i++)
	{
		scanf("%s",a[i]);
		if((c=getchar())=='\n')
			break;
	}
	for(;i>=0;i--)
	{
		printf("%s",a[i]);
		if(i!=0)
			printf(" ");
	}
}
void main()
{
	char *p,a[1000];
	int n,m=0;
	int i,j;

	p=a;
	
	gets(a); 
	n=strlen(a);
	for (i=n-1;i>=0;i--)
	{
		
		if(*(p+i)!=' ') m++; 
		if (*(p+i)==' ') 
		{
			
			for (j=i+1;j<=i+m;j++) printf("%c",*(p+j));
			printf(" ");
			m=0;
		}
		
	}
	for (i=0;i<n;i++)
	{
		printf("%c",*(p+i));
		if (*(p+i+1)==' ') break;
	}
}
int main()
{
	char word[100];
	int i,p=0,k=0,flag=0;
	while(cin.getline(word,100))
	{
		for(i=0;i<100;i++)
		{
			if(word[i]!='\0')p=i;
			else break;
			
		}
		for(i=0;i<=p;i++)
		{
			if(word[i]==' ')
				flag=1;
		}
			if(flag==0)
			{
				for(i=0;i<=p;i++)
					cout<<word[i];
			}
			else
		{for(i=p;i>=0;i--)
		{
			if(word[i]!=' ')
				k++;
			else
			{
				for(int j=i+1;j<=i+k;j++)
					cout<<word[j];
				cout<<" ";
				k=0;
			}
		}
		for(i=0;i<100;i++)
		{
			if(word[i]!=' ')
				cout<<word[i];
			else break;
		}}
	}
	return 0;

}
sb(char a[])
{
	char *p,*q;
	int n;
	n = strlen(a);
	p = a + n - 1;
    while (*p != ' '&&p != a - 1)
			p--;
	q = p + 1;
	for (;*q != '\0'&&*q != ' ';q++)
			printf("%c",*q);
	p--;
	for (;p>=a;p--)
	{
		printf(" ");
		while (*p != ' '&&p != a - 1)
			p--;
		q = p + 1;
		for (;*q != '\0'&&*q != ' ';q++)
			printf("%c",*q);
	}
}
main()
{
	char a[1024];
	gets(a);
	sb(a);
}
void main()
{
	char str[100];
	char *p=str,*a[100];
	int i,j,k;
	gets(p);
	for(i=0,j=1;*(p+i)!='\0';i++)
	{
		if(*(p+i)==' ')
		{	a[j]=p+(i+1);
		    *(p+i)='\0';
		    j++;
		}
		a[0]=p+0;
	}
	for(k=j-1;k>0;k--)
		printf("%s ",a[k]);
	printf("%s",a[0]);
	
}
int main()
{
	char s[100][100];
	int i,n;
	i=0;
	while (scanf("%s",*(s+i))!=EOF)
	{i++;}
	n=i;
	for(i=n-1;i>=1;i--)
    {printf("%s ",*(s+i));}
    printf("%s",*s);
}
int main()
{
	char c,a[50][50];
	int i=0,j;
	while(cin>>a[i])
	{
		i++;
	}
	for(j=i-1;j>0;j--)
	{
		cout<<a[j]<<" ";
	}
	cout<<a[0];
	return 0;
}
/*
 *???? DANCIDAOPAI.cpp
 *??????
 *????: 2012-11-21
 *?????????????
 */
int main() {
	int i = 0;
	char word[50][50];//??????????
	while (cin >> word[i])//?????
		i++;
	int j;
	j = i - 1;
	cout << word[j];
	j--;
	while (j >= 0) {
		cout << " " << word[j];
		j--;
	}//??????
	return 0;
}
main()
{
	char c[100],a,e[100];
	int b,i,d,j;
	gets(c);
	b=strlen(c);
	for(i=0,d=0;i<b;i++)
		
			if(c[i]==' ')d++;
			if(d!=0)
			{
		for(i=0;i<b/2;i++)
	{
		a=c[i];
		c[i]=c[b-1-i];
		c[b-1-i]=a;
	}
	
    	for(i=0,j=0;i<b;i++)
		if(c[i]==' ')
		{e[j]=i+1;
		j++;}
		for(j=0;j<d-1;j++)
			for(i=e[j];i<=(e[j]+e[j+1]-2)/2;i++)
		{
		a=c[i];
		c[i]=c[e[j+1]+e[j]-2-i];
		c[e[j+1]+e[j]-2-i]=a;
			}
	for(i=0;i<(e[0]-1)/2;i++)
	{
		a=c[i];
		c[i]=c[e[0]-1-1-i];
		c[e[0]-1-1-i]=a;
	}
    for(i=e[d-1];i<(e[d-1]+b-1)/2;i++)
	{
		a=c[i];
		c[i]=c[b+e[d-1]-1-i];
		c[b+e[d-1]-1-i]=a;
	}
	puts(c);}
			else
			puts(c);
}
void main()
{
	char a[100],b[100][100];
	int i,j=0,k=0,l,p=0;
	gets (a);
	l=strlen (a);
	for (i=0;i<l;i++)
	{
		if (a[i]!=32) 
		{
			if (p==0) 
			{
				b[j][k]=0;
			    j=j+1;
				k=0;
			}
			b[j][k]=a[i];
			k++;
			p=1;
		}
		else p=0;
	}
	b[j][k]=0;
	for (i=j;i>1;i--)
	{
		k=0;
        while (b[i][k]!=0)
		{
			printf ("%c",b[i][k]);
		    k++;
		}
		printf (" ");

	}
		
	puts (b[i]);

}
int main()
{
char s[100][50];
int i,a;
for(i=0;i<50;i++)
{scanf("%s",s[i]);
if(s[i][0]>122||s[i][0]<65) break;}
a=i-1;
for(i=a;i>=1;i--)
{printf("%s ",s[i]);}
printf("%s",s[0]);
}
int main()
{
    char a[100],c[100][100],b;          //??????a,c,??????b
    int i=0,j,m=0,d[100],n=0;               //??????i,j,m,??????d
    while(scanf("%c",&b))               //while????????
    {
        if(b!='\n')                    //?????????????????????a?
        {
            a[i]=b;
            i++;                      //a???+1
        }
        if(b=='\n')
            break;                  //???????????while??
    }
    for(j=0;j<i;j++)
    {
        if(a[j]!=' ')
        {
            c[n][m]=a[j];            //?????????????????????????c?
            m++;                     //c????+1
        }
        if(a[j]==' ')
        {
            n++;                    //???+1
            d[n-1]=m;               //??????????????????????d
            m=0;                    //m??
        }
    }
    d[n]=m;                       //??????????????????d?
    for(j=n;j>0;j--)
    {
        for(m=0;m<d[j];m++)
        {
            cout<<c[j][m];           //??????????????????
        }
        cout<<" ";
    }
    for(m=0;m<d[0];m++)
    {
        cout<<c[0][m];
    }
    return 0;
}
char s[105];
int main(){
	cin.getline(s,sizeof(s));
	for(int i = strlen(s) - 1;i >= 0;i --){
		for(int j = i;j >= 0;j --){
			if(s[j] == ' '){
				cout << &s[j+1] << ' ';
				s[j] = '\0';
				i = j - 1;
				break;
			}
		}
	}
	cout << s << endl;
	return 0;
}
int main()
{
	char d[100];
	int i=0;
	int t=0;
	do
	{
		d[i]='\0';
		i++;
	}while(i<100);
	gets(d);
	char c[100][100];
	i=0;
	do
	{
		t=0;
		do
		{
		c[i][t]='\0';
		t++;}while(t<99);
		i++;
	}while(i<100);
	i=0;
	int q=0;
	
	do
	{
		t=0;
		do
		{
			if(d[q]!=' ')
			{
				c[i][t]=d[q];
				t++;q++;
			}
			else
			{q++;break;}
		}while(d[q]!='\0');
		i++;
	}while(d[q]!='\0');
	i=i-1;
	while(i>=1)
	{
		t=0;
		while(c[i][t]!='\0')
		{
			printf("%c",c[i][t]);
			t++;
		}
		printf(" ");
		i--;
	}
     t=0;
	while(c[0][t]!='\0')
	{
		printf("%c",c[0][t]);
		t++;
	}
	return 0;
}
void main()
{
	char A[101],B[101][101];
	gets(A);
	int i,l,j,k,m;
	l=strlen(A);
	j=0;
	m=0;
	for(i=0;i<=l;i++)
	{
		if(A[i]==32||i==l)
		{
			for(k=m;k<i;k++)
				B[j][k-m]=A[k];
			B[j][k-m]='\0';
			j++;
			m=i+1;
		}
	}
	for(i=j-1;i>0;i--)
	{
		for(k=0;B[i][k]!='\0';k++)
			printf("%c",B[i][k]);
		printf(" ");
	}
	for(k=0;B[i][k]!='\0';k++)
		printf("%c",B[i][k]);
}
void main()
{
	char string[100],ch[100][100];
	int length[100]={0};
    gets(string);
	int L=strlen(string);
	int i,j=0,k=0,sum;
	for(i=0;i<L;i++)
	{
			if(string[i]==' ')
			{
			    j++;
				length[j]++;
				k=0;
				ch[j][k]=' ';
				k++;
				
			}
			
			if(string[i]!=' ')
			{
				length[j]++;
				ch[j][k]=string[i];
				k++;

			}
		
	}
	sum=j;
	if(sum!=0)
	for(k=1;k<length[sum];k++)
		printf("%c",ch[sum][k]);

	for(j=sum-1;j>=1;j--)
	{
        for(k=0;k<length[j];k++)
			printf("%c",ch[j][k]);
	}
	if(sum!=0)
	printf(" ");
	for(k=0;k<length[0];k++)
		printf("%c",ch[0][k]);


}
int main(){
    int k,i,j,l;
    char aa[100],bb[100][100];
    gets(aa);
    i=0;
    j=0;
    l=0;
    while(aa[i]!='\0'){
      if(aa[i]!=' '){
          bb[j][l]=aa[i];
             l++;
                  }
      else {  
         j++;
         l=0;
         }
         i++;
         }
         cout<<bb[j];
         for(k=j-1;k>=0;k--){
                    cout<<" "<<bb[k];
             }
                return 0;
         }
void main()
{
	int len,i,j,k,label;
	char ss[101];
	gets(ss);
	len=strlen(ss);
	for (i=0;i<len;i++)
	{
		if (ss[i]==' ')
		{
			label=i;
			break;
		}
		if (i=len-1)
			label=len;
	}
	i=len-1;
	while(i>=0)
	{
		for (j=i;j>=0;j--)
			if (ss[j]==' ')
				break;
		for (k=j+1;k<=i;k++)
			printf("%c",ss[k]);
		//if (i!=label-1 && label!=len)
		//	printf(" ");
		if (j>=0)
        printf("%c",ss[j]);
		i=j-1;
	}
}
/*
 *????????.cpp
 *?????
 *????: 2012-11-16
 *???????????
 */


int main(){
	//????a[200]?????i,j?????n?????start?????end
	char a[200];
	int i = 0, j, n, start, end;

	cin.getline(a, 200);		//?????
	n = strlen(a);				//??????
	start = n + 1;					//???????????1???????-1????????????????1???
	for (i = n - 1; i >= 0; i--)
	{
		if (a[i] == ' ')			//???????????????????????????????????
		{
			end = start - 1;		//important???
			start = i + 1;
			for (j = start; j < end; j++)
			{
				cout << a[j];
			}
			cout << " ";

		}
	}
	end = start - 1;			//??????????????????????????????????????????????????????
	start = 0;
	for (i = 0; i < end; i++)
	{
		cout << a[i];
	}
	return 0;
}
int main()
{
	char a[101];
	cin.getline(a,100);
	char b[100][150];
	int sum=0,i=0,j=0;
	for(i=0;i<strlen(a);i++)
	{
		if(a[i]==' ')
		{
			sum=sum+1;
			j=0;
			continue;
		}
		else
		{
			b[sum][j]=a[i];
			j=j+1;
		}
	}
	cout <<b[sum];
	for(i=sum-1;i>=0;i--)
		cout <<" " <<b[i];
	cout <<endl;
	return 0;
}
void main()
{
	char *p[300];
	int i=0,k;
	p[i]=(char*)malloc(30*sizeof(char));
	while(scanf("%s",p[i])!=EOF)
	{
		i++;
		p[i]=(char*)malloc(30*sizeof(char));
	}
	k=i-1;
	for(i=k;i>=0;i--)
	{
		if(i==k) printf("%s",p[i]);
		else printf(" %s",p[i]);
	}
}
void main()
{
	int i=0;
	char str[100][100];
	while (scanf("%s",str[i])!=EOF)//EOF?????
		i++;
	i--;//??????????,?????
		for(;i>0;i--)
		printf("%s ",str[i]);
	printf("%s",str[0]);
}
/*??? 1200012866 11.2*/
int main()
{
	char f,a[100];
	int x=0;
	while((f=getchar())!=EOF){//??
		a[x]=f;
		x++;
	}
	x=x-1;//??????eof
	for(int i=x;i>0;i--)//????????
		if(a[i]==32){
			for(int j=i+1;j<x;j++)
				cout<<a[j];
			cout<<" ";
			x=i;
		}
	for(int j=0;j<x;j++)//??????
		cout<<a[j];			

	return 0;
}
int main()
{
	char a[100][100];
	int i;
	char c;
	for (i=0;;i++)
	{
		scanf ("%s%c",a[i],&c);
		if (c!=' ')
		{
			break;
		}
	}
	printf ("%s",a[i]);
	for (i-1;i-1>=0;i--)
		printf (" %s",a[i-1]);
}
void main()
{
	int i=0,j=0,k;
	char str[100];
	gets(str);
	while(str[i]!='\0')
		i++;
	for(i--;i>=0;i--)
	{
		while(str[i]!=' '&&i>=0)
		{
			j++;i--;
		}
		for(k=++i;k<i+j;k++)
		{
			printf("%c",str[k]);
		}
		if(i!=0)printf(" ");
		i--;
		j=0;
	}
	printf("\n");
}
void main()
{
	char str[100][50]={'\0'};
	char (*p)[50];
	int i=0,j;
	while(scanf("%s",str[i])!=EOF)
	{
		i++;
	}
	p=str;
	for (j=i-1;j>=1;j--)
		printf("%s ",p[j]);
	printf("%s",p[0]);
}
void main()
{
	int n,i,j,b=1;
	char a[102],*p,*q;
	gets(a);
	n=strlen(a);
	p=&a[0];
	for(i=n-1;i>=0;i--)
		*(p+i+1)=*(p+i);
	*p=*(p+n+1)=' ';
	*(p+n+2)='\0';
    p=&a[n+1];
	for(;p>&a[0];p--)
	{
		if(*p==' ')
		{
			for(q=p-1;q>=&a[0];q--)
			{
				if(*q==' ')
				{
					if(q==&a[0])
                    b=0;
					for(q=q+1;q<p;q++)
						printf("%c",*q);
					break;
				}
			}
			if(b!=0)
			{
				printf(" ");
				b=1;
			}
		}
	}
}
int main ()
{
    char str[100];
	int n,i,a,j;
	gets(str);
	n=strlen(str);
	a=n-1;
	for(i=n-1;i>0;i--)
		if(str[i]==' ') 
		{
			for(j=i+1;j<=a;j++)
				printf("%c",str[j]);
			    printf("%c",str[i]);
			a=i-1;
		}
	for(i=0;i<a+1;i++)
		printf("%c",str[i]);
}
int main()
{
	char str[200];
	gets(str);
	int n=strlen(str);
	int i,j,c[50],d=0;
	c[0]=n;
	for(i=n-1;i>=0;i--)
		if(str[i]==' ')
		{
			d++;
			c[d]=i;
			for(j=i+1;j<c[d-1];j++)
				putchar(str[j]);
            printf(" ");
		}
	for(i=0;i<c[d];i++)
		putchar(str[i]);
}
int main()
{
	char c[100]={"\0"};
	char a[100][10]={"\0"};
	int i=0,j=1,k=0;
	cin.getline(c,100,'\n');
	for (i=0;c[i]!='\0';i++)
	{
		if (c[i]!=' ')
		{
			k++;
			a[j][k]=c[i];			
		}
		else
		{
			j++;
			k=0;
		}
	}

	for (i=j;i>1;i--)
	{
		for (k=1;a[i][k]!='\0';k++)
		cout<<a[i][k];
		cout<<' ';
	}
	while (a[1][i]!='\0')
	{cout<<a[1][i];
	i++;}

	return 0;

}
int main()
{
	int num=0,i=0;
	char c,st[100][100];
	while(1)
	{
		cin>>st[i];
		i++;
		num++;
		c=cin.get();
		if(c==' ')
			continue;
		break;
	}
	for(i=num-1;i>0;i--)
	{
		cout<<st[i]<<" ";
	}
	cout<<st[0]<<endl;
	return 0;
}