semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
 char a[100];
 int c[100][2]={0};
 int i,j,k,l;
 cin.getline(a,1000);
 l=strlen(a);
 k=0;
 i=0;
for(i=0;i<l;i++)
 {if(a[i]!=' '&&(a[i+1]==' '||a[i+1]=='\0'))
    {c[k][1]=i+1;
     k++;}
  if(a[i]==' '&&a[i+1]!=' ')
    {c[k][0]=i+1;}}
for(i=k-1;i>0;i--)
 {for(j=c[i][0];j<c[i][1];j++)
  cout<<a[j];
  cout<<" ";}
for(j=c[0][0];j<c[0][1];j++)
  cout<<a[j];
  cin.get();cin.get();cin.get();
return 0;
}
void main()
{
	char s0[200],s[200],kg[200];
	int i,i1,k=0,n;
	gets(s0);
	n=strlen(s0);
	for(i=0;i<n;i++)
		s[i+1]=s0[i];
	s[0]=s[n+1]=' ';
	for(i=n+1;i>=0;i--)
	{
		if(s[i]==' ')
		{
			k=k+1;
			kg[k]=i;
		}
	}
	if(k==2)
		puts(s0);
	else
	{
		for(i=kg[2]+1;i<kg[1];i++)
		printf("%c",s[i]);
		for(i=2;i<=k-1;i++)
		{
			for(i1=kg[i+1];i1<kg[i];i1++)
				printf("%c",s[i1]);
		}
	}
}
int main()
{char a[200];
  int n,i,j,k;
  gets(a);
  n=strlen(a);
  *(a+n)=' ';*(a-1)=' ';
  for(i=n-1,j=n+1;i>=-1;i--)
  if(*(a+i)==' ')
  {for(k=i+1;*(a+k)!=' ';k++,j++)
    *(a+j)=*(a+k);
    *(a+j)=*(a+k),j++;
  }
  for(i=0;i<n;i++)
  printf("%c",*(a+n+1+i));
}
void main()
{
	char *p[100];
	int i;
	for (i=0;i<100;i++)
	    *(p+i)=(char *)malloc(100);
	i=0;
	while (scanf("%s",*(p+i))!=EOF)
	{
		i++;
	}
	int j=0;
	printf("%s",*(p+i-1));
	for (j=i-2;j>=0;j--)
		printf(" %s",*(p+j));
}
//****************************
//**????
//****************************
int main()
{
	char str[100][100];
	int n=0;
	cin>>str[0];           //???????
	while(cin.get()!='\n')//????????????????
	{
		cin>>str[n+1];
		n++;
          
	}
	int k=n;
	for(k=n;k>0;k--)
		cout<<str[k]<<" ";
	cout<<str[0]<<endl;//????????
	return 0;
}
void main()
{
 int i,l,len;
 char a[526],*fr,*ta,*p;
 gets(a);
 len=strlen(a);
 for(i=len;i>=0;i--)
	 *(a+i+1)=*(a+i);
 *(a+len+1)=*a=' ';
 ta=a+len+1;
 for(p=a+len;p>=a;p--)
 {
	 if(*p==' ')
	 {
	     for(fr=p+1;fr<ta;fr++)
			 printf("%c",*fr);
		 if(p!=a) printf(" ");
		 ta=p;
	 }
 }

 
}
int main()
{
	int i,j,a[101],m=0,l=0;
	char str[101];
	gets(str);
		for(i=0;str[i]!='\0';i++)
		{
			if(str[i]==' '&&str[i+1]!=' ')
			{	a[m]=i+1;m++;}
			
		}    
		for(i=m-1;i>=0;i--)
		{
			for(j=a[i];str[j]!='\0'&&str[j]!=' ';j++)
			{
				cout<<str[j];
			}
			cout<<' ';
		}
		if(str[0]!=' ')
		{
		for(i=0;str[i]!='\0'&&str[i]!=' ';i++)
			cout<<str[i];
        }  
		return 0;
}
void main()
{
	char str[128],*p;
	int n,i,j,k,m,x=0;
	gets(str);
	p=str;
	n=strlen(str);
	for(i=0;i<n;i++)
	{
		if(*(p+i)==' ') x++;
	}
	if(x==0)
	{
		for(i=0;i<n;i++)
			printf("%c",*(p+i));
	}
	else
	{
	   for(i=n-1;i>-1;i--)
	   {
		   if(*(p+i)==' ')
		   {
			m=i;
			for(j=i+1;*(p+j)!=' '&&*(p+j)!='\0';j++)
				printf("%c",*(p+j));
			printf("%c",' ');
		   }
	   }
	for(k=0;k<m;k++)
		printf("%c",*(p+k));
	}
}
void main()
{   void turn (char a[]);
	char words[101];
   gets(words);
   turn(words);
   puts(words);
}
  void turn (char a[])
  {   char b[50][101],c[101]="";
      int i,j=0,k,l,len;
	  len=strlen(a);
	  for (i=0;i<len;i++)
		  if (a[i]==' ')
		  {  k=i;
		     while (a[k-1]!=' '&&k!=0)
				 k--;
			 for (l=0;k<i;k++,l++)
				 b[j][l]=a[k];
			 b[j][l]='\0';
			 j++;
		  }
		k=i;
		while (a[k-1]!=' '&&k!=0)
			k--;
		for(l=0;k<i;k++,l++)
			b[j][l]=a[k];
		b[j][l]='\0';
		strcpy(a,c);
		for (i=j;i>0;i--)
		{	strcat(a,b[i]);
		    strcat(a," ");
		}
        strcat(a,b[0]);
		strcat(a,"\0");
		}
void main()
{
	char *p[100],end='\n';
	int i,count;
	for(i=0;;i++)
	{
		p[i]=(char *)malloc(20*sizeof(char));
		scanf("%s",p+i);
		if(end==getchar()) 
		{
			count=i;
			break;
		}
	}
	for(i=count;i>0;i--)
		printf("%s ",p+i);
	printf("%s",p+i);
}
int main(){
  char s[110][60];
  int i,j;
  for (i=0;scanf("%s",s[i])!=EOF;i++);
  for (j=0;j<i;j++)
	  printf("%s%s",j==0?"":" ",s[i-j-1]);
  printf("\n");
  return 0;
}
/*
 * 7.cpp
 * ????
 *  Created on: 2012-11-5
 *      Author: Salforever
 */



int main()
{
	int length,num,i,len=0;							//????
	char x[105],y[101][105];
	cin.getline(x,101);								//?????
	length=strlen(x);								//???????
	num=1;											//???????
	for (i=0;i<=length-1;i++)						//????
		if (x[i]!=' ') {y[num][len]=x[i];len++;}
		else {y[num][len]='\0';num++;len=0;}
	for (i=num;i>=2;i--)							//????
		cout << y[i] << ' ';
	cout << y[1] << endl;
	return 0;
}
int main()
{
	char s[200];
	int num,i,lens,max,min,w1,w2,len[200]={0},beg[200],j;
	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]++;
	}
    
	for(i=num;i>1;i--)
	{
		for (j=beg[i];j<beg[i]+len[i];j++)
	          printf("%c",s[j]);
		printf(" ");
	}
	for (j=beg[1];j<beg[1]+len[1];j++)
	          printf("%c",s[j]);

	return 0;
}
int main()
{
	char str[100];
	int n,i,j,k;
	gets(str);
	n=strlen(str);
	k=n;
	for (i=n-1;i>=0;i--)
	{
		if (str[i]==' ')
		{
			for (j=i+1;j<k;j++)
				printf("%c",str[j]);
			k=i;
			printf(" ");
		}
	}
	for (j=0;j<k;j++)
		printf("%c",str[j]);
}
char a[101][101];
int main()
{
    int j;
    for (j = 0; cin >> a[j]; ++ j);//??
    for (; j; )//????????
    {
        cout << a[--j];
        if (j)
            cout << " ";
    }
    return 0;
}
int main()
{
    int i=0,j=0,n;
    char a[150][150],b;
    while((b=cin.get())!='\n')
    {
        if(b==' ')
        {
            a[i][j]='\0';
            i=i+1;
            j=0;
        }

        else
        {
            a[i][j]=b;
            j++;
        }
    }
    a[i][j]='\0';
    n=i;
    for(i=n; i>=1; i--)
        cout<<a[i]<<" ";
        cout<<a[0]<<endl;
    return 0;
}
//7. ???? ??? 20121109

char Str[100][100];     //?????

int main()
{
      int wordCount=0;
      int i=0;
      char a;   //??????
      cin.get(a);

      while(a!='\n')
      {
          while(a!=' '&&a!='\n')
          {
              Str[wordCount][i]=a;
              i++;
              cin.get(a);
          }
          wordCount++;
          i=0;
          if(a!='\n') cin.get(a);
      }

      for(i=99;i>0;i--)
        if(Str[i][0]!='\0') break;

      for(;i>0;i--)
      cout<<Str[i]<<' ';

      cout<<Str[0];

      return 0;
}
int main()
{
	char str[100];
	int i,k,j;
	gets(str);
	i=strlen(str)-1;
	for(j=i,k=i;i>=0;i--)
	{
		if(str[i]==' '||i==0)     		
{
			j=i;
			if(i==0)
				for(;i<=k;i++)
					printf("%c",str[i]);
			else
				for(i=i+1;i<=k;i++)
					printf("%c",str[i]);
			if(j>0)    
				printf(" ");
			i=j;k=j-1;  
		}
	}
}
void main()
{
	char str[100],string[100][100];
	char *p,(*q)[100];
	int i,j,k;
	p=str;
	gets(str);
	q=string;
	j=0;k=0;
	for(i=0;*(p+i)!='\0';i++)
		if(*(p+i)==' ')
		{
			*(*(q+j)+k)='\0';
			j++;k=0;
		}
		else
		{
			*(*(q+j)+k)=*(p+i);
			k++;
		}
	*(*(q+j)+k)='\0';
	for(i=j;i>0;i--)
		printf("%s ",q+i);
	printf("%s\n",q);
}
int main()
{
	char words[105]={0};
	int i=0,j=0,sum=0;
	cin.getline(words,101,'\n');
	while(words[i])
	{
		sum++;
		i++;
	}
	for(i=(sum-1);i>=0;i--)
	{
		if(words[i]==' ')
		{
			for(j=i+1;j<=(sum-1);j++)
			{
				if(words[j]==' ') break;
				cout<<words[j];
			}
			cout<<" ";
		}
	}
	for(i=0;i<sum;i++)
	{		
		if(words[i]==' ')break;
		cout<<words[i];
	}
	cin.get();cin.get();
	return 0;
}
int main()
{
	char ch;
	char out[100][100];
	int len=0,count=0;
	while(cin.get(ch))
	{
		if(ch=='\n')
			break;
		else if(ch==' ')
		{
			out[len][count]='\0';
			len++;
			count=0;
		}
		else
		{
			out[len][count]=ch;
			count++;
		}
	}
	out[len][count]='\0';
	for(int i=len; i>=0; i--)
	{
		cout<<out[i];
		if(i)
			cout<<" ";
	}
	cout<<endl;
	return 0;
}
void main()
{ 

    int strNnum=0,strMnum=0,max,min,maxstr=0,minstr=0,i,len;
    char string[50][15],ch;

    while((ch=getchar())!='\n')
	{
     if(strMnum!=0&&(ch==' '))
	 {
       string[strNnum][strMnum]='\0';
       strNnum++;strMnum=0;
	 }
     else
      if(ch!=' ')
	  {
        string[strNnum][strMnum]=ch;
        strMnum++;
	  }
	}
    string[strNnum][strMnum]='\0';
	for(i=strNnum;i>0;i--)
		printf("%s ",string[i]);
	printf("%s",string[0]);

}
void main()
{
	char s[101];
	int i, j;
	gets(s);
	for(i=strlen(s)-1; i>0; i--)
		if(s[i]!=' '&&s[i-1]==' ')
		{
			for(j=i; s[j]!=' '&&s[j]!='\0'; j++)
				printf("%c", s[j]);
			printf(" ");
		}
	for(i=0; s[i]!=' '&&s[i]!='\0'; i++)
		printf("%c", s[i]);
	printf("\n");
}
void main()
{
	char s[100];
	char str[100][100];
	int i,j=0,k=0,l,n=0,p,q;
	char c;
	for(p=0;p<100;p++)
	{
		for(q=0;q<100;q++)
			str[p][q]='\0';
	}
	gets(s);
	l=strlen(s);
	for(i=0;i<l;i++)
	{
		if((c=s[i])!=' ')
		{
			if((c=s[i+1])==' '||(c=s[i+1])=='\0')n++;
		}
	}
	for(i=0,j=0;i<l;i++)
	{
		if((c=s[i])!=' ')
		{
			str[j][k]=s[i];
			k++;
		}
		else
		{
			j++;
			k=0;
		}
	}
	for(j=0;j<n-1;j++)printf("%s ",str[n-1-j]);
	printf("%s",str[0]);
}
void main()
{
	char str[100];
	int i,j,n,m;
	gets(str);
	for(n=0;str[n]!='\0';)
	{
		n++;
	}
for(i=n-1,m=n;i>=0;i--)
	{ 
		if(str[i]==' ') 
		{
			for(j=i+1;j<m;j++)
				{
				printf("%c",str[j]);
				}
			printf(" ");
			m=i;
		}

	}
	for(i=0;i<m;i++)
	printf("%c",str[i]);
}
void main()
{
	char a[100],*p;
	int m,n,i,j;
	gets(a);
	m=strlen(a);
	p=a;
	j=m;
	for(i=m-1;i>-1;i--)
		if(*(p+i)==' ')
		{
			printf("%s",p+i+1);
			printf(" ");
			*(p+i)='\0';
			j=i;
		}
		for(i=0;i<j;i++)
			printf("%c",*(p+i));
}
void main()
{
   int i,n;
//=============??????????????===========
//   char ch[100];
//   gets(ch);
//   n=strlen(ch);
//   for(i=n-1;i>=0;i--)
//   {  
//       printf("%c",ch[i]);
//   }
//====================================================
     char ch[100][100];   //??????
     n=0;
     scanf("%s",ch[0]);
     for(i=1;i<100;i++)
        {
		 if(getchar()!='\n') {
             scanf("%s",ch[i]);            
             n=n+1;
		 }
		  else break;       
         }

     for(i=n;i>=1;i--){printf("%s ",ch[i]);}
     printf("%s",ch[0]);
}
int main()
{
	char a[100][100]={'\0'},b[100]={'\0'};
	int i,n=0,j,m=0,u;
	gets(a[0]);
	n=strlen(a[0]);
	for(i=0,j=1;i<n;i++)
	{
		if(a[0][i]==' ')
		{
			b[j]=i+1;
			j++;
		}
	}
	b[j]=strlen(a[0])+1;
	for(u=1;u<=j;u++)
	{
		strncpy(a[u],a[0]+b[u-1],b[u]-b[u-1]-1);
		//printf("%d %d %d\n",u,b[u-1],b[u]);
	}
	for(i=j;i>=2;i--)
		printf("%s ",a[i]);
	printf("%s",a[1]);
	return 0;
}
void main()
{
	char str[100],word[20][50]={'\0'};
	gets(str);
	int i,n,j=0,s=0;
	n=strlen(str);
	for(i=0;i<n;i++)
	{
		if(str[i]!=' ') {word[j][s]=str[i];s++;}
		else {j++;s=0;}
	}
	for(i=j;i>0;i--)
		printf("%s ",word[i]);
	printf("%s",word[0]);
}
void main()
{
	char s[102]={'\0'},a[60][20]={'\0'},*p1,*p2;
	gets(s);
	int count=0; int i;
	char *p;
    p1=s;
	p2=s;
	while(*p1!='\0')
	{
		while(*p1!=' '&&*p1!='\0')
		p1++;
		
       
		for(i=0,p=p2;p<p1;p++,i++)
			a[count][i]=*p;
		count++;
		p1++;
		p2=p1;
	}

	for(i=count-1;i>0;i--)
		printf("%s ",a[i]);
	printf("%s\n",a[0]);
}
/*
 * homework1106.cpp
 *
 *  Created on: 2012-11-5
 *      Author: wangyinzhi
 */

int main(){
	char a[10000],word[100][100],t[100];
	cin.getline(a,sizeof(a));
	int k=0,i=0,j=0;
	for(i=0;i<=strlen(a);i++){
		if(a[i]!= ' '){
			word[k][j++]=a[i];
		}
		else {
			word[k][j]='\0';
			j=0;
			k=k+1;
		}
	}//????????word????

	int n=k+1;
	for (i=0;i<=n/2-1;i++){
		strcpy(t,word[i]);
		strcpy(word[i],word[k-i]);
		strcpy(word[k-i],t);//???????
	}
		for(i=0;i<=n-1;i++){
			if(i==0){
				cout<<word[i];
			}
			else cout<<" "<<word[i];//??
		}
	return 0;
}
void main()
{
	char a[100];
	int b[100],c[100];
	int B,C,k,i,j;
	gets(a);
	b[0]=0;
	B=1;
	C=0;
	for(i=0;a[i]!='\0';i++)
	{
		if(((a[i]!=' ')&&(a[i+1]==' '))||a[i+1]=='\0')
		{
			c[C]=i;
			C=C+1;
		}
	}
	for(i=1;a[i]!='\0';i++)
	{
		if ((a[i-1]==' ')&&(a[i]!=' '))
		{
			b[B]=i;
			B=B+1;
		}
	}
	for(i=B-1;i>0;i--)
	{
		for(j=b[i];j<=c[i];j++)
			printf("%c",a[j]);
		printf(" ");
	}
	for(j=b[0];j<=c[0];j++)
			printf("%c",a[j]);
}
int main()
{
	int i,j=0,k,m=0,x,y,z,num;
	char a[100]={'\0'};
	char b[100][100]={'\0'};
	cin.getline(a,100);//??
	num=strlen(a);
	a[num]='\n';//?????????
	for(i=0;i<=num;i++)
	{
		if(a[i]==' '||a[i]=='\n')//??????????
			{for(k=j;k<i;k++)
			{
				b[m][k-j]=a[k];//????
			}
			m=m+1;
			j=i+1;}
	}
	for(x=m-1;x>0;x--)
	{
		cout<<b[x]<<" ";//????
	}
	cout<<b[0];
	return 0;
}
int main()
{
	char a[100][100];
	int i=0,j;

			while(1)
	{
		scanf("%s",a[i]);
	    if ((a[i][0]>=65)&&(a[i][0]<=122))
			;
		else
			break;
		i++;
	
	}
	i--;
	for (j=i;j>=1;j--)
    printf("%s ",a[j]);
    printf("%s",a[0]);
    
	return 0;
}
void main()
{
	char a[100],b[100][100];
	int n=1,i,num=0,j;
	gets(a);
    n=strlen(a);
	for(i=0;i<n;)
	{
		if(a[i]!=' ')
		{
			j=0;
			do
			{
				b[num][j]=a[i];
                i++;
				j++;
			}while(a[i]!=' ');
			b[num][j]='\0';
			num++;	
		}	
		else i++;
	}
	for(i=num-1;i>=0;i--)
	{
		if(i<num-1)
			putchar(' ');
		printf("%s",b[i]);
	}
}
void main()
{
	char c;
	int i=0,j,k,t;
	char str[30][30];
	do
	{
		scanf("%s",str[i]);
		i++;
	}while((c=getchar())!='\n');
	t=i;
	printf("%s",str[t-1]);
	for(i=t-2;i>=0;i--)
	printf(" %s",str[i]);
}
main()
{
	char a[500],b[500];
	int i,la,k=0,j;
	gets(a);
	la=strlen(a);
	for(i=0;i<la;i++)
	{
		if(a[i]!=' ') k=k+1;
		else 
		{
		    for(j=i-k;j<i;j++)
			   b[la+j+k-2*i]=a[j];
			b[la-i-1]=' ';
			k=0;
		}
	}
	for(j=i-k;j<i;j++)
		b[la+j+k-2*i]=a[j];
	b[la]='\0';	
    puts(b);
}
/*
  Name: ????
  Copyright: 
  Author: 
  Date: 08/11/12 20:40
  Description:??????(????????)????????????????????????? 
*/
int main()
{
   char str[100][20]={'\0'};
    int i=0,k; 
    while(true)
	{
       cin>>str[i];
		i++;       // ?????????? 
	   if(cin.peek()=='\n')
		   break;
	}

    for(k=i-1;k>=0;k--)
	{
	  if(k==0)
          cout<<str[k]; //???? 
	  else
		  cout<<str[k]<<' ';
	}

           return 0;
}
void main()
{
	int i,j=0,k=0,l;
	char str[101],a[100][15];
	gets(str);
	for(i=0;str[i]!='\0';i++)
	{
		if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
		{
			a[j][k]=str[i];
			k++;
		}
		else 
		{
			a[j][k]='\0';
			k=0;
			j++;
		}
	}
	a[j][k]='\0';
	for(l=j;l>=1;l--)
	{
		printf("%s ",a[l]);
	}
	printf("%s\n",a[0]);
}
void main()
{
	char a[100][100];
	int i,j,k;
	for(i=0;;i++)
	{
		scanf("%s",&a[i]);
		if(getchar()=='\n') break;
	}
	printf("%s",a[i]);
	for(j=i-1;j>=0;j--)
	{
		printf(" %s",a[j]);
	}
	printf("\n");
}
void main()
{
	char a[100],b[10][10],c=' ';int i,j=0,l,h=0;
	gets(a);
	l=strlen(a);
	for(i=0;i<l;i++){if(a[i]!=' ')b[j][h++]=a[i];else {b[j][h]=0;j++;h=0;}}b[j][h]=0;
	printf("%s",b[j]);
	for(i=j-1;i>=0;i--)printf("%c%s",c,b[i]);
	printf("\n");

}
int main()
{
	int i,n,m;
	
	char a[101];
	char b[10][100];
	gets(a);
	

	n=m=0;i=0;
    while(a[i]!='\0')
	{
		while((a[i]!=' ')&&(a[i]!='\0'))
		{
			b[n][m]=a[i];
			i++;
			m++;
		}
		b[n][m]='\0';
		n++;m=0;
		while(a[i]==' ')
		{
			
			b[n][m]=a[i];
			m++;
			i++;
		}
		b[n][m]='\0';
		n++;m=0;
	}
	for(i=n-1;i>=0;i--)
	{
		printf("%s",b[i]);
	}
	
	return 0;
}
void main()
{
	char s[100],word[100][100];/*???????????????*/
	int a[100],z[100],i,j=1,h=0,x,n;/*???????????*/
	gets(s);
	n=strlen(s);
	for(i=1;i<n;i++)/*???????????????????????????????*/
	{
		if(s[i]==' '&&s[i-1]!=' ')
		{
			z[h]=i;h++;
		};
		if(s[i]!=' '&&s[i-1]==' ')
		{
			a[j]=i;j++;
		}
	}
	z[h]=n;
	a[0]=0;
	for(i=0;i<h+1;i++)
	{
		for(x=0;x<z[i]-a[i];x++)
		{word[i][x]=s[a[i]+x];word[i][z[i]-a[i]]='\0';}
	}
	printf("%s",word[h]);
	for(i=h-1;i>=0;i--)
		printf(" %s",word[i]);
}
/*???????????????????????????????????'\0',?????????????????????????????????*/
int main()
{
	char a[10][100]={{'\0'}};
	int n=0;
	while (cin>>a[n])n++;
	for (int i = n-1; i > 0;--i)cout<<a[i]<<' ';
	cout<<a[0]<<endl;
	return 0;
}
int main()
{

      char s[100] ;
      cin.getline(s,100);//???????
      int length = strlen (s) ;//????????
      int i = 0 , j = 0 , k ;
      int max = 0 ;
      int temp ;
      int flag[100] ;
      char shu[100][1000];
      memset( flag , 0 , sizeof(flag)  );//???flag????0

      for ( k = 0 ; k < length ; k++ )
         {
                    if( s[k] > 35 )
                       {
                           flag[i]++ ;
                           shu[i][j] = s[k] ;
                           j++ ;
                       }
                      else
                        {
                            i++ ;
                            j=0 ;
                        }//??????????????????
         }
               cout << shu[i] ;//??????????
                  for ( k = i - 1 ; k >= 0 ; k-- )
                       {
                           cout<<" "<<shu[k];//?????????????
                       }
        return 0;
}
void main()
{
	char s[101];
	int i,l,j;
	gets(s);
	l=strlen(s);
	for(i=l-1;i>=0;i--)
	{
		if(s[i]==' ')
		{
    		for(j=i+1;;j++)
		    {
    			if(j>=l||s[j]==' ')break;
		    	printf("%c",s[j]);
		    }
			printf(" ");
		}
		else if(i==0)
			for(j=0;;j++)
		    	{
    				if(j>=l||s[j]==' ')break;
					printf("%c",s[j]);
		    	}
	}
	printf("\n");
}
void main()
{
	char str1[100],*p,*q,*a;
	int n;
	gets(str1);
	n=strlen(str1);
    p=str1+n-1;
	q=str1+n-1;
	a=str1+n-1;
	for(p=str1+n-1;p>=str1;p--)
	{
		if(*p==' ')
		{a=p-1;
		for(p=p+1;p<=q;p++)
		printf("%c",*p);
		printf(" ");
		q=a;
		p=a;}
	}
	for(p=str1;p<=q;p++)
	printf("%c",*p);
}
int main()
{
	char st[100],swst[20][20];//st is the sentence(without commar and period)
	int i,j,k=1,t;
	gets(st);
	for(i=1;;i++){
		for(j=1;;j++)
		{
            if(st[k-1]!=' '&&st[k-1]!='\0')
			{
				swst[i-1][j-1]=st[k-1];
				k++;
			}
			if(st[k-1]==' '||st[k-1]=='\0')
			{
				swst[i-1][j]='\0';
				k++;
				break;
			}
		}
		if(st[k-2]=='\0')break;
	}
	printf("%s",swst[i-1]);

	for(t=i-2;t>=0;t--)
		printf(" %s",swst[t]);
	printf("\n");
	return 0;
}
void main(void)
{
	int i, num, j, l;
	char c[101], a[50][30];
	gets(c);
	l = strlen(c);
	num = 0;
	j = 0;
	for(i = 0;i < l;i ++)
	{
		if(c[i] != ' ')
		{
			a[num][j] = c[i];
			j ++;
		}
		else
		{
			a[num][j] = '\0';
			num ++;
			j = 0;
		}
	}
	a[num][j] = '\0';
	for(i = num;i > 0;i --)
		printf("%s ",a[i]);
	printf("%s",a[0]);
}
char a[100];
int i,j,lenth;
char *flag1,*flag2;
char *start=a;
char *move;


void print()
{
	char *p;
	if(move!=start)
	{
		for(p=flag1+1;p<flag2;p++)
			printf("%c",*p);
		printf(" ");
	}

	else
	{for(p=flag1;p<flag2;p++)
	printf("%c",*p);}
}

void main()
{
	gets(a);

	lenth=strlen(a);
	move=a+lenth-1;

	for(flag1=move+1;move>=start;move--)
	{
		if(*move==' '||move==start)
		{
			flag2=flag1;
			flag1=move;
			print();
		}

			
	}

}
// ????.cpp : ??????????????
//



int main()
{
	char a[100][100];
	int l[100],i=0,j,k,p;
	for(i=0;i<=100;++i)
	{
		for(j=0;j<=100;++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(k=i-1;k>=0;--k)
	{
		printf(" %s",a[k]);
	}
	return 0;
}
main()
{
	int i,j=0,n,k=0,b[100];
	char s[100];
	gets(s);
	n=strlen(s);
	for(i=0;i<n;i++)
	{
		if(s[i]==' ')
		{
			b[j]=i;
			j++;
		}
	}
	b[j]=n;
	b[-1]=0;
	for(k=0;k<j;k++)
	{
		for(i=b[j-1-k]+1;i<b[j-k];i++)
		{
			printf("%c",s[i]);
		}
		printf(" ");
	}
	for(i=0;i<b[0];i++)
		printf("%c",s[i]);
}
void main()
{
	char s1[100];
	int i,j,num;
	gets(s1);
	num=strlen(s1);
	for(i=num-1;i>=0;i--)
	{
		if(s1[i]==' ') 
		{
			for(j=i+1;(s1[j]!=' '&& s1[j]!='\0');j++)
			{
				printf("%c",s1[j]);
			}
			printf(" ");
		}
		if(i==0)
			for(j=i;(s1[j]!=' '&& s1[j]!='\0');j++)
			{
				printf("%c",s1[j]);
			}
	}
}
int main()
{
	char a[101];
	char b[101][101];
	int i;
	int j;
	int k;
	int t;
	gets(a);
    for(i=0,j=0,k=0;a[i]!='\0';i++)
	{
		if(a[i]!=' ')
		{
			b[j][k]=a[i];
			k++;
			if(a[i+1]==' ')
			{
				b[j][k]='\0';
				j++;
			    k=0;
			}
			else
			{
				if(a[i+1]=='\0')
				{
			     	b[j][k]='\0';
				    j++;
			        k=0;
				}
			}
		}
            
	}
	for(t=j-1;t>=0;t--)
	{
		printf("%s",b[t]);
		if(t!=0)
		{
			printf(" ");
		}
	}
	printf("\n");
	return 0;
}
void main()
{
	char a[200];
	int b[200];
	int i,j,k,l;
	gets(a);
	for(k=0;k<200;k++)
	{
		if(a[k]=='\0')
			break;
	}
	i=0;

	for(j=0;i<k;j++)
	{
		for(;i<k;i++)
		{
			if(a[i]==' ')
			{
				b[j]=i;
				i++;
				break;
			}
		}

	}
	b[j-1]=k;
	b[-1]=-1;
	l=j-2;
	for(;l>=-1;l--)
	{	
             for(k=b[l]+1;k<=b[l+1]-1;k++)
		{
	
		          	printf("%c",a[k]);
			

		}

         if(l!=-1)
         printf(" ");
}


}
int main() {
	char input[101];
	cin.getline(input,101);
	int inputlen=strlen(input);
	int sumblank=0;
	for (int i=0;i<=inputlen-1;++i)
	{
		if (input[i]==' ')
			++sumblank;
	}
	char word[100][101];
	int i=0;
	int k=0;
	for (int j=0;j<=inputlen-1;++j)
	{
		if (input[j]==' ')
		{
			++i;
			k=0;
		}
		else
		{
			word[i][k]=input[j];
			++k;
		}
	}
	for (int i=sumblank;i>=0;--i)
	{
		if (i==sumblank)
			cout <<word[i];
		else
			cout <<" "<<word[i];
	}
    
	return 0;
}
void main()
{
	char *a[100],c='\n';int i;
	for(i=0;;)
	{
		a[i]=(char *)malloc(100*sizeof(char));
		scanf("%s",a[i]);i++;
		if(c==getchar()) break;
	}
	for(i=i-1;i>=0;i--)
	if(i!=0) printf("%s ",a[i]);
	else printf("%s",a
		[i]);
}
void main()
{
	int i,j,n,m,k,word;
	char a[100],*p,string[100],*pp[100],s[100][100];
	gets(a);
	n=strlen(a);
	k=1;
	for(p=a;p<a+n;p++)
 {
  if(*p==' ')
   word=0;
  else 
   if(word==0)
   {
    word=1;
    k++;
   }
 }
 i=0;
 j=0;
 p=a;
 m=0;
 while(*p!='\0')
 {
	 pp[i]=p;
  while(*p!=' ')
  {
	  
	  *(pp[i]+j)=*p;
  p++;
  j++;
  if(*p=='\0')
   break;
  }
 *(pp[i]+j)='\0';
 i++;
 p++;
 j=0;
 }
  
 for(i=k-1;i>0;i--)
	 printf("%s ",pp[i]);
 printf("%s",pp[0]);
}
void bo(char c[100])
{
	int i,j,k;
	char d[100][100];
	for(j=0;j<100;j++)
	    for(i=0;i<100;i++)
		    d[j][i]='\0';
	for(i=0,j=0,k=0;c[k]!='\0';k++)
	{
		if(c[k]!=' ')
		{
			d[i][j]=c[k];
			j++;
		}
		if(c[k]==' ')
		{
			if(i!=0)
			    d[i][j]=' ';
			i++;
			j=0;
		}
	}
	if(i!=0)
	{
	printf("%s ",d[i]);
	for(i=i-1;i>=0;i--)
		printf("%s",d[i]);
	}
	else
	puts(c);
}
main()
{
	char c[100],d[100][100];
	int i,j,m,l;
	gets(c);
    bo(c);
}
int main() {
int i=0,n,j=0,k,sub,first=0;
char str[100],s[100]="",word[100],t[100]="";
gets(str);
n=strlen(str);
for(i=0;i<=n-1;i++) {
j=0;
while(str[i]!=' '&&str[i]!='\0') {
word[j]=str[i];
i++;
j++;
}

sub=strlen(s);
for (k=0;k<=j-1;k++) {
t[k]=word[k];
}
if (first!=0) t[j]=' ';
for (k=0;k<=sub-1;k++) {
t[j+k+1]=s[k];
}

for (k=0;k<=sub+j;k++) {
s[k]=t[k];
}
first=1;
}
puts(s);
}
void main()
{
	int i,j,k;
	char str1[100],str2[100][100];
	gets(str1);
	for(i=0,k=-1;i<100;i++)
	{		
		for(j=0;j<100;j++)
		{
			k=k+1;
			str2[i][j]=str1[k];						
			if(str1[k]==' '||str1[k]=='\0') break;
		}
		if(str1[k]=='\0') break;
	}
   for(i;i>=0;i--)
   {
	   for(j=0;str2[i][j]!=' '&&str2[i][j]!='\0';j++)
		   printf("%c",str2[i][j]);
	   if(str2[i][j]=' '&&i!=0)
		   printf(" ");
   }
}
/*
 * homework2.cpp
 *
 *  Created on: 2012-11-10
 *      Author: Lixurong
 */


int main()
{
	char a[100][100];
	int i=0;
	while( cin >> a[i] )//????
	{
		char c;
		cin.get(c);
		if( c=='\n' )//????????????
			break;
		i++;
	}
	for( i-1; i>=0; i-- )//????
	{
		cout << a[i];
		if( i!=0 )
			cout << " ";
	}
	return 0;
}
int main() {
    char s[101][101];
    int i = 0;
    while (cin >> s[i]) {
        i++;
    }
    cout << s[i-1];
    for (i -= 2; i >= 0; i--) {
        cout << " " << s[i];
    }
    return 0;
}
int main()
{
	char str[100];
	gets(str);
	int i,k;
	int j;
	char substr[100];
	k=strlen(str);
	int recorder=0;/*recorder????????????????*/
	for(i=0;i<=k;i++)/*???i<k????????????????*/
	{
		if (str[i]==' ')
		{
                           substr[k-i-1]=' ';
			for (j=0;recorder+j<i;j++)/*???j=recorder,j<=i???j??????????????????????????????????j?????????*/
				substr[k-i+j]=str[recorder+j];/*???substr[k-i+j]=str[j]*/
			recorder=i+1;
		}
		else if (str[i]=='\0')
		{
			for (j=0;recorder+j<k;j++)
				substr[k-i+j]=str[recorder+j];
		}/*?????????????????*/

	}
	for (i=k;i<100;i++) substr[i]='\0';
	puts(substr);
	return 0;
}
void main()
{
	int i,j,t;
	char a[100][100]={'t'};
	for(i=0;;i++)
	{
		for(j=0;;j++)
		{scanf("%c",&a[i][j]);
		 if(a[i][j]==' '||a[i][j]=='\n') break;
		}
		if(a[i][j]=='\n') break;
	}
        for(t=0;t<j;t++)
	       printf("%c",a[i][t]);
	   if(i>0) { printf(" ");
	    for(i-=1;i>0;i--)
		printf("%s",a[i]);
	    for(t=0;;t++)
		if(a[0][t]!=' ')
	    printf("%c",a[0][t]);
		else break;}
}
int main()
{
	int n,i,j,k,m,s=0;
	char c[100],d[100];
	gets(c);
	n=strlen(c);
	d[n]='\0';
	for(i=0;i<n;i++)
	{
		if(((c>0)&&(c[i-1]==' '))||(i==0)&&(c[i]!=' '))
		{
			for(j=i;j<n;j++)
			{
				if(c[j]==' ') break;
			}
			m=j-i;
			s=s+m;
			for(k=i;k<j;k++)
			{
				d[n-s+k-i]=c[k];
			}
		}
		if(c[i]==' ')
		{
			s=s+1;
			d[n-s]=c[i];
		}
	}
	puts(d);
	return 0;
}