semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	char str[100];
	int space[100], num = 1;
	cin.getline(str,100);
	space[0] = strlen(str);
	str[space[0]] = ' ';
	for(int i = space[0] - 1; i >= 0; i--)
		if(str[i] == ' ')
		{
			for(int j = i + 1; j <=space[num-1 ]; j++)
				cout << str[j];
			space[num++] = i;
		}
	for(int k = 0; k < space[num - 1]; k++)
		cout << str[k];
	return 0;
}
void main ()
{
 int x1,x2,k,m,i,j;              /*??????x1,x2,k,m,i,j*/
 char c[100],c1[100];            /*??????c[100],c1[100]*/
 gets(c);                        /*?????c*/
 k=strlen(c);                    /*??c??????k*/
 x1=k;m=0;                       /*x1???k?m???0*/
 for(i=k-1;i>=0;i--)             /*???????????????i?x2*/
 {
   if(c[i]==' ')
    {
      x2=i;
      for(j=0;j<x1-x2-1;j++)     /*???i??????????????c1*/
       c1[j+m]=c[j+x2+1];        
	   c1[x1-x2+m-1]=' ';        /*?????????????*/
	   m=m+x1-x2;                /*??????m?m???????*/
	   x1=x2;                    /*x1???????i?*/
   }
 }
 if (i<0)                          /*???????????????????c1???*/
  for (j=0;j<x1;j++)
    c1[k-x1+j]=c[j];
 for(i=0;i<k;i++)                /*???k??c1*/
	 printf("%c",c1[i]);
}
void main( )
{
	int i,j,sum=0;
	int p1[100],p2[100];
	char *str=(char *)malloc(101*sizeof(char));
	gets(str);
	char *p[100];
    for(i=0;i<100;i++)
		p[i]=(char *)malloc(sizeof(char)*100); 
	p1[0]=0;
	for(i=0;*(str+i)!='\0';i++)
	{if(*(str+i)==' ')
		{   p2[sum]=i-1;
		sum++;}
		else if(*(str+i-1)==' '&&*(str+i)!=' '&&*(str+i)!='\0')
			p1[sum]=i;
	}
	p2[sum]=i-1;
	sum++;
	for(i=0;i<sum;i++)
		for(j=p1[i];j<=p2[i];j++)
			p[i][(j-p1[i])]=*(str+j);
	for(i=0;i<sum;i++)
		p[i][(p2[i]-p1[i]+1)]='\0';
	for(i=sum-1;i>0;i--)
	{printf("%s",p[i]);
	printf(" ");}
	puts(p[0]);
}
void main()
{
	char str1[100];
	char str2[100];
	int i,j,k,l,m,n;
	gets(str1);
	l=strlen(str1);
	m=0;
	n=-1;
	j=l-1;
 loop:{
		  for(i=n+1;i<l;i++)
		  {
			  if(str1[i]!=' ')break;
		  }
		  m=i;
		  for(i=m+1;i<=l;i++)
		  {
			  if(str1[i]==' ')break;
			  else if(str1[i]=='\0')break;
		  }
		  n=i-1;
		  for(k=n;k>=m;k--)
		  {
			  str2[j]=str1[k];
			  j=j-1;
		  }
		  if(i!=l)
		{
			str2[j]=' ';
		    j=j-1;
		    goto loop;
		}
		else 
		{
			str2[l]='\0';
			printf("%s",str2);
		}
	  }
}
int main ()
{
	int i,j=0,k,l,b[20];
	char a[101];
	cin.get(a,101,'\n');
	for(i=0;i<101;i++)
	{
		if(a[i]==32)
		{
			b[j]=i;
			j++;
		}
		if(a[i]=='\0')
			break;
	}
	l=i;
	k=j;
	if(k!=0)
	{
		for(i=b[k-1]+1;i<l;i++)
			cout<<a[i];
		for(j=k-2;j>=0;j--)
		{
			cout<<" ";
			for(i=b[j]+1;i<b[j+1];i++)
				cout<<a[i];
		}
		cout<<" ";
		for(i=0;i<b[0];i++)
			cout<<a[i];
	}
	if(k==0)
		cout<<a;
	return 0;
}
int Strlen(char *ch1)
{
	int i=0;
    for(i=0;ch1[i]!='\0';i++);
    return i;
}
void main()
{
	char ch1[100],ch2[100],a[20];
    int i,j,k=0;
	gets(ch1);
	for(i=Strlen(ch1)-1;i>=0;i--)
	{
		if(ch1[i]!=' ')
		{
			j=0;
			do
			{
				a[j++]=ch1[i--];
			}
			while(ch1[i]!=' '&&i>=0);
			a[j]=' ';
			for(j=j;j>=0;j--,k++)
				ch2[k-1]=a[j];
			i++;
		}
	}
ch2[k-1]='\0';
printf("%s\n",ch2);
}
//Yang Lingbo   1200017623


int main(){
	int i,j = 0,k = 0,len_total,count = 0;
	char str[100],word[15][10] = {'\0'};            //str????  word???
	gets(str);
	len_total = strlen(str);
	for(i = 0;i < len_total;i++){          //????
		if(str[i] != ' '){
			word[count][k++] = str[i];
		}
		else{
			k = 0;
			count++;
		}
	}

	//????,??count???????????1??????????count++????
	for(i = count;i >= 0;i--){         
		cout<<word[i];
		if(i)cout<<' ';
	}
	cout<<endl;
	return 0;
}
main()
{
	int i,j,m=0,n=0,p=0;
	char a[100],b[100][100];
	gets(a);
	for(i=0;i<strlen(a);i++)
	{
        if(a[i]!=' ')m++;
		if(a[i]==' '||i==strlen(a)-1)
		{
			for(j=0;j<m;j++)
			b[n][j]=a[j+p];
			m=0;
			p=i+1;
			n++;
		}
	}
	printf("%s",b[n-1]);
	for(i=n-2;i>=0;i--)
		printf(" %s",b[i]);
}
main()
{
   int i=0,j,m=0,k,l=0;
   char str[100][100]={'\0'};   /*???]={'\0'}*/
   char a[100];
   gets(a);
   k=strlen(a);
   for(i=0;i<k;i++)
       if(a[i]==' '&&a[i+1]!=' ')
	 l++;
   l=l+1;
   i=0;                        /*???i=0;*/
   for(j=0;j<k;j++)
   {
       if(a[j]!=' ')
       {
          str[i][m]=a[j];
          m++;
       }
       if(a[j]==' '&&a[j+1]!=' ')
       {
          i++;
          m=0;
       }
   }
   for(j=0;j<l-1;j++)
   printf("%s ",str[l-j-1]);
   printf("%s",str[0]);
}
void f(int t){
char c[100];
if(scanf("%s",c)!=EOF){f(0);

cout<<c;if(!t)cout<<' ';}
}
int main(){
f(1);

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

	


}
int main()
{
	char a[50][20];
	int i=0,j=0,k=0,m=0,d;
	int b[50];
	char c;
	for(c=getchar();c!='\n';c=getchar()) //?????????????
	{
		if (c!=' ')
		{
			a[i][j]=c;
			j++;
			d=j;
		}
		else
		{
			i++;
			m=i;
			b[k]=j;
			k++;
			j=0;
		}
	}
	b[k]=j;  //???????????????b?
	for (;m>0;m--)  //?b[m-1]?a[m-1]??m-1???m??????????
	{
		for (j=0;j<b[m]-1;j++)
			printf("%c",a[m][j]);
		printf("%c ",a[m][b[m]-1]);//?b[i]-1??b[m]-1?????????????
	}
	for (j=0;j<b[0];j++)  //?j<d??j<b[0]?d????????j?
			printf("%c",a[0][j]);
	return 0;
}
int main()
{
	char input[100],output[100][100];
	int i=0,count=0,n=0;
    cin.getline(input,101,'\n');
	while (input[i]!=0)
	  {
		 if (input[i]!=' ')
		   {
			   output[count][n]=input[i]; 
			   n++;
		   }
		 else {			     
				 output[count][n]=0;
				 count++;
				 n=0;
		      }
		 i++;
	  }

	for (i=count;i>0;i--)
		cout <<output[i] <<" ";
	cout <<output[0];

	return 0;
}
void main()
{
  char mystr[100],c;
  int a[100],i,j,k;
  gets(mystr); 
  for(i=0,j=1;i<strlen(mystr);i++)
  {
     if(mystr[i]==' ')
     {
		 a[j]=i;
         j++;
	 }
  }
  a[0]=-1;
  a[j]=strlen(mystr); 
  for(k=strlen(mystr)-1;k>=0;k--)
  {

      if(k==a[j-1])
	   {
		   printf(" ");
		   j=j-1;
	   }
	  else
		   
	  {c=mystr[a[j]+a[j-1]-k];   
	  printf("%c",c);}
       	 
     
  }

}
void main()
{
	char str1[100],str2[100];
	int n,i,j,k;
	gets(str1);
	n=strlen(str1);
	i=n-1;
	for(j=0;str1[i]!=32&&i>=0;i--)
	{str2[j]=str1[i];
	j++;}
	for(k=j-1;k>=0;k--)
		printf("%c",str2[k]);
	i--;
	while(i>=0)
	{for(j=0;str1[i]!=32&&i>=0;i--)
	{str2[j]=str1[i];
	j++;}
	printf(" ");
	for(k=j-1;k>=0;k--)
		printf("%c",str2[k]);
	i--;}
	
	
}
main()
{
	char c[50][100];
	int d[100],i,j,a=0;
	for(i=0;i<=50;i++)
	{ 
		d[i]=0;
		for(j=0;j<=100;j++)
		{
			c[i][j]=getchar();
			if(c[i][j]>122||c[i][j]<65) break;
				d[i]=d[i]+1;
		}
		if(c[i][j]=='\n') break;
			a=a+1;
	}

	c[a][d[i]]=' ';
	for(i=a;i>0;i--)
	{	
		for(j=0;j<=d[i];j++)
		{		
			printf("%c",c[i][j]);
		}
	}
	for(i=0,j=0;j<=d[i]-1;j++)
	{		
		printf("%c",c[i][j]);
	}

}
int main(){
	char a[100];
	signed int num=1,b[100],total=0;//total??????b?????????? 
	for(int i=0;i<100;i++){
		cin.get(a[i]);
		if(a[i]=='\n')break;
		total++;
		if(a[i]==' '){
			b[num]=i;
			num++;
			}//?????????????????b[1] 
		}
		b[0]=-1;
		b[num]=total;//?????????????? 
		for(int i=num-1;i>=0;i--){
			for(int j=b[i]+1;j<b[i+1];j++){
				cout<<a[j];
				}
				if(i!=0)cout<<" ";
			}
			
			return 0;
	}
int main()
{
	char str[100];
	char str1[20][20];
	int i,j=0,k=0;//str1[j][k]
	cin.getline(str,100);
	for(i=0;str[i]!='\0';i++)
	{
		if(str[i]!=' ')
		{
			str1[j][k]=str[i];
			//cout<<"str1["<<j<<"]["<<k<<"]="<<str[i]<<endl;
			k++;
		}
		else
		{
			str1[j][k]='\0';
			//cout<<"str1["<<j<<"]["<<k<<"]='\ 0'"<<endl;
			k=0;
			j++;
		}
	}
	str1[j][k]='\0';
	for(i=0;i<j;i++)
		cout<<str1[j-i]<<' ';
	cout<<str1[0];
	return 0;
}
void main()
{
	char s[50][200];
	char str[200];
	int n=0,i=0,j=0,t;
	gets(str);
	t=strlen(str);
	while(n<=t)
	{
		if(str[n]!=' ')
		{
			s[i][j]=str[n];
			j++;
		}
		else 
		{
			s[i][j]='\0';
			i++;
			j=0;
		}
		n++;
	}
	for(;i>0;i--)
		printf("%s ",s[i]);
	printf("%s",s[0]);
}
int main()
{
    char st[101],word[100][20];
    gets(st);
    int num=0,flag=0,i,j,k;
	int judge=1;//???????????????????word?1?????????????
    for(i=0;st[i]!='\0';i++)
    {if(st[i]==' ') flag=0;
    else if(flag==0) 
    {num ++;//?????????????????????????????????
    flag=1;}
    if((num==1&&judge==1)||(st[i-1]==' '&&st[i]!=' '))//????????????? ???????:   if(flag!=0)
    {
     j=0;
     judge=0;//?????????????????????word?1???num?=1???????????,????????????
     for(k=i;st[k]!=' '&&st[k]!='\0';k++)//????????????????????????
    {word[num][j++]=st[k];}
    word[num][j++]='\0';}
    }
for(i=num;i>1;i--)
printf("%s ",word[i]);//??????????????   printf("%s ",word[num]);
printf("%s",word[1]);
}
/*
 * dancidao.cpp
 *
 *  Created on: 2013-11-15
 *      Author: ???
 */
int main()
{
	int i,j,n,q=0,l[100];
    char a[100][50];
    for(i=0;i<100;i++)
    {
    	for(j=0;j<50;j++)
    	{
    		a[i][j]=cin.get();
    		if(a[i][j]==' ')
    		{
    			l[i]=j;
    			break;
    		}
    		else
    			if(a[i][j]=='\n')
    			{
    				l[i]=j;
    				q=1;
    				break;
    			}
    	}
		if(q)
			break;
    }
    n=i+1;
    for(i=n-1;i>=0;i--)
    {
    	if(i==0)
    	      for(j=0;j<l[i];j++)
    			cout<<a[i][j];
    	else
    	{
    		for(j=0;j<l[i];j++)
    			cout<<a[i][j];
    		cout<<' ';
    	}
    }
       return 0;
}
void main()
{
    int i,j=1,n,b[100],m=0;
	char a[100];
	gets (a);
	n=strlen(a)-1;
	b[0]=n;
	for (i=0;i<=n;i++) if (a[i]==' ') m=m+1;
    if (m>0)
	{
		for (i=n;i>=0;i--)
		if(a[i]==' ') {b[j]=i;j=j+1;}
    for (i=b[1]+1;i<=b[0];i++) printf("%c",a[i]);printf(" ");
	j=1;
	while (j<m)
	{
		for (i=b[j+1]+1;i<=b[j];i++) printf("%c",a[i]);
		j=j+1;
	}
	for (i=0;i<=b[m]-1;i++) printf("%c",a[i]);
	}
    else if(m==0) puts(a);
}
int main()
{
 char s1[101],s2[101];
 int k1,k2;
 int l1,l2=0;
 cin.getline(s1,101);
 l1=strlen(s1);
 k1=l1-1;k2=l1-1;
 for(int i=l1-1;i>=0;i--)
 {
   if(s1[i]==' '||i==0)
  {
   k1=i;
   if(i==0)
    if(k2==l1-1)
    {k1-=1;}
    else
    {k1-=1;k2-=1;}
   for(int j=k1+1;j<=k2;j++)
   {
    s2[j-k1-1+l2]=s1[j];
   }
   l2+=k2-k1;
   if(k2==l1-1&&k1!=-1)
   {s2[l2]=' ';l2++;}
   k2=k1;
  }
 }
 s2[l2]='\0';
 cout<<s2;
 return 0;
}
void main()
{
	char str[50][100],b;
	int i,j=0;
	for(i=0;i<100;i++)
	{
		scanf("%s",str[i]);
			b=getchar();
		if(b!=' ')break;j++;
	}
    for(i=j;i>0;i--)
		printf("%s ",str[i]);
	printf("%s",str[0]);
}
void main()
{
	char s[105];
	char t[100][100];
	int i,j,k;

	gets(s);

	j=0;
	k=0;
	for(i=0;i<strlen(s);i++)
	{
		if(s[i]!=' ')
		{
			t[j][k]=s[i];
			k++;
		}

		if(s[i]==' ')
		{
			t[j][k]=0;
			k=0;
			j++;
		}
	}
	t[j][k]=0;


//	printf("%s",t[0]);
//	getchar();

	for(i=j;i>0;i--)
		printf("%s ",t[i]);
	printf("%s\n",t[0]);
}
int main()
{
    char word[100][100];
   int i=0,j=0,k=0;
   char f[100];
   cin.getline(f,100);
   for(i=0;i<strlen(f);i++)
   {
       if(f[i]==' '){k++;j=0;continue;}
       word[k][j]=f[i];
       j++;
   }
   for(i=k;i>0;i--)
      cout<<word[i]<<" ";
      cout<<word[0]<<endl;
   return 0;
}
int main()
{
    int a[100][100],m[100],n,p;
    for (int i=1;i<=100;i++)
    {
        for (int j=1;j<=100;j++)
        {
            a[i][j]=getchar();
            if (a[i][j]=='\n'||a[i][j]==' ')
            {
               p=a[i][j];
               m[i]=j-1;
               break;
            }
        }
        if (p=='\n')
        {
           n=i;
           break;
        } 
    }
    for (int i=n;i>=1;i--)
    {
        for (int j=1;j<=m[i];j++)
			putchar(a[i][j]);
        if (i==1)
        break;
        putchar(' ');
    }
    return 0;
}
void main()
{
char a[101];
gets(a);
int l;int k;

char b[103]=" \0";

strcat(b,a);

l=strlen(b);int i;int j;

for(i=l;i>=0;--i)
{
	if(b[i]!='\0')
	{
		if(b[i]==' ')
		{
			if(b[i+1]!=' ')
				for(j=i+1;j<=k;j++)
					printf("%c",b[j]);
			if(i==0)
				printf("\n");
			else printf("%c",b[i]);

		}
		else if(b[i+1]==' '||b[i+1]=='\0')
			k=i;
	}

}



}
int main(){
	char words[MAX][50],m='i';
	int LEN=0;
	while(m!='\n'){
		cin>>words[LEN];
		LEN++;
		cin.get(m);
	}
	for(int i=0;i<LEN-1;i++) cout<<words[LEN-i-1]<<' ';
	cout<<words[0];
	return 0;
}
int main()
{
	char s[150],*p;
	int len,l;
	gets(s);
	len=strlen(s);

	for(l=0,p=s+len-1;p>=s;p--)
	{
		if(*p==' ')
		{
			if(l)
			{
				l=0;
				*p=0;
				printf("%s ",p+1);
			}
		}
		else
			l++;
	}
	if(l)
		printf("%s\n",s);
	return 0;
}
void main()
{
char str[101];
int q[102],b,c,i,j=0,k,m,x=0;

gets(str);

for(i=0;str[i]!='\0';i++)

{
  if(str[i]==' ')
q[j]=i,j++,x++;
  else
  if(str[i+1]=='\0')
   b=i;}

if(j==0)
 {for(m=0;str[m]!=' '&&str[m]!='\0';m++)
 printf("%c",str[m]);}
else
{for(;j>0;j--)
   {
   for(m=q[j-1]+1;str[m]!=' '&&str[m]!='\0';m++)
  {printf("%c",str[m]);
   if(str[m+1]==' '||str[m+1]=='\0')
   printf(" ");}
  }
for(m=0;str[m]!=' '&&str[m]!='\0';m++)
printf("%c",str[m]);
 }
}
void main()
{
	char a[101];
	int indexa,indexb,i;
	gets(a);

	indexb=strlen(a)-1;
	while(indexb>0&&a[indexb]==' ')
		indexb--;

	if(indexb==0&&a[indexb]==' ')
		indexb--;

	indexa=indexb-1;
	int num=0;
	while(indexa>=0)
	{
		if(a[indexa]!=' ')
			indexa--;
		else
		{
			if(num!=0)
				printf(" ");
			num++;
			for(i=indexa+1;i<=indexb;i++)
				printf("%c",a[i]);
			indexb=indexa-1;
			while(indexb>0&&a[indexb]==' ')
				indexb--;
			if(indexb==0&&a[indexb]==' ')
				indexb--;
			indexa=indexb-1;
		}
	}

	if(indexb>=0)
	{
		if(num!=0)
				printf(" ");
		num++;
		for(i=0;i<=indexb;i++)
			printf("%c",a[i]);
	}
	printf("\n");
}
main()
{
	int i,j;
	char *p,s[100][100],c;
	c=' ';
	i=0;
	p=*s;
	while (c==' ') 
	{
		scanf("%s",p);
		c=getchar();
		i++;
        p=*(s+i);
	}
    for (j=i-1;j>0;j--)
	{
		p=*(s+j);
		printf("%s ",p); 
	}
	p=*s;
    printf("%s\n",p);
}
void main()
{
	char *str,*p,*q,*temp;
	int n,i;
	str=(char*)calloc(128,sizeof(char));
	gets(str);
	n=strlen(str);
	for(i=n-1;i>=0;i--)
	{
		*(str+i+1)=*(str+i);
	}
	*str='\0';
	p=q=str+n;
	while(1)
	{
		if(*p!=' '&&*p!='\0')
		{
			p--;
			continue;
		}
		if(*p==' '||*p=='\0')
		{
			for(temp=p+1;temp<=q;temp++)
				printf("%c",*temp);
			if(*p!='\0')
				printf(" ");
			else
				break;
			p--;
			q=p;
			continue;
		}
	}
}
void main()
{
	char c[100];
	int i,k,j,b=0,n,m=0;
	gets(c);
    n=strlen(c);
	for(i=n-1;i>=0;i--)
	{
		for(j=1;j<=i;j++)
		{
			if(c[i-j]==' ')
			{
				for(k=i-j+1;k<=i;k++)
				printf("%c",c[k]);
				printf(" ");
				m=i;
				b=j;
				break;
			}
		}
		i=i-j;		
	}
	if(m-b<=0)
	{
		for(k=0;k<n;k++)
			printf("%c",c[k]);
	}
	else
	{
	for(k=0;k<m-b;k++)
		printf("%c",c[k]);
	}
}
void main()
{
	int i,j;
	char a[101];
	
	gets(a);
	for(i=strlen(a)-1;i>0;i--)
	{
		if(a[i]==' ')
		{
                      for(j=i+1;a[j]!=' '&&a[j]!='\0';j++)
		        printf("%c",a[j]);
		    if(j!=i+1)
		        printf(" ");
		}
          }
          for(j=i;a[j]!=' '&&a[j]!='\0';j++)
	     printf("%c",a[j]);
}
int main()
{
	char c[100][100]={0},a[100],(*p)[100]=c;
	int i,j=0;
	char d;
	for(i=0;(c[j][i]=getchar())!='\n';i++)
	{
		if(c[j][i]==' ')
		{
			c[j][i]='\0';
			j++;
			i=-1;
		}
	}
	c[j][i]='\0';
	int num=j;
	for(;j>0;j--)
	printf("%s ",c[j]);
	printf("%s",c[0]);
}
void main()
{
	int n;
    char s[200],*p,*k;
	gets(s);
	n=strlen(s);
	for(p=s+n-1;p>s;p--){
		if(*p==' '){
			for(k=p+1;(*k!=' ')&&(*k!='\0');k++)
			{printf("%c",*k);}
			printf(" ");
		}
	}
	for(;(*p!=' ')&&(*p!='\0');p++)
		printf("%c",*p);
}
int main()
{
char str[102],re[102];                                                          //re????????????? 
cin.get(str,100);
int len,i,j,m;
len=strlen(str);
m=0;
for(i=len-1;i>=0;i--)
    {
	if(str[i]==' ')
        {for(j=i+1;j<len;j++)
           {
	       re[m]=str[j];                                                              //?????????????????????re?? 
		   m++;}
         re[m]=' ';
         m++;
	     len=i;
		 }
	if(i==0)
	   for(j=0;j<len;j++)
	      {
           re[m]=str[j];                                                          //????????????????re?? 
		   m++;
		   }	
   }
for(i=0;i<strlen(str);i++)
    cout<<re[i];                                                                  //?? 
return 0;
}
void main()
{
    char ch1[100],ch2[100];
    unsigned int i,j,s,k=0,chang;
	gets(ch1);
    s=strlen(ch1);
	for(i=0;i<s;i++)
	{
		if (ch1[i]==' ') 
		{
		chang=i-k;
		 for (j=0;j<chang;j++)
		 {  ch2[s-chang-k+j]=ch1[k+j];
		 if (j==chang-1) ch2[s-chang-k-1]=' ';}
		k=i+1;
		}
		
	}
         chang=i-k;
		 for (j=0;j<chang;j++)
		 ch2[s-chang-k+j]=ch1[k+j];
		 
		 ch2[s]='\0';
		
    puts(ch2);
}
int main()
{
	char a[50][50],ch; //?????????????
	int i=0,j=0,k;
	while ((ch=cin.get())!='\n')
	{
		if (ch==' ')
		{
			a[i][j]='1';
			i++;
			j=0;
		}           //??????????????????????????
		else 
		{
			a[i][j]=ch;
			j++;
		}           //???????????
	}
	a[i][j]='1';
    for (k=i;k>=1;k--)
	{
		j=0;
		while (a[k][j]!='1')
		{
			cout <<a[k][j];
			j++;
		}
		cout <<' ';
	}               //????????????????
	j=0;
	while (a[0][j]!='1')
	{
		cout <<a[0][j];
		j++;
	}             //????????
	return 0;
}
int main()
{
	char a[100][100];
	int i;
	for(i=0;;i++)
	{
		scanf("%s",&a[i]);
		if(getchar()=='\n')
			break;
	}
	for(int j=0;j<i;j++)
	{
		printf("%s ",a[i-j]);
	}
	printf("%s",a[0]);\
	return 0;



	
}
int main()
{
	char a[9999][20]={'0'},x,b[9999]={'0'};
	int i=0,j=0,k=0,temp=0;
	cin.getline(b,9999);
	b[strlen(b)+1]='\0';
	//	cout <<b;
	for (; ;i++)
	{
		if (b[i]=='\0')
		{
			j=temp;
			break;
		}
		else if (b[i]!=' ')
		{
			a[k][j]=b[i];
			j++;
		}
		else 
		{
			k++;
			temp=j;
			j=0;
		}
		
	}
	
	for (j=k;j>0;j--) cout <<a[j]<<' ';
	cout <<a[0];
	
	return 0;
	
}
int main()
{
	char s[100],a[30][10]={'\0'};
	int i,len,l=0,p=0;
	gets(s);
	len=strlen(s);
	for(i=0;i<len;i++)
	{if(s[i]!=' ')
	{a[l][p]=s[i];
	p++;
	}
    if((s[i+1]==' '&&s[i]!=' ')||s[i+1]=='\0')
	{l++;p=0;}
	}
	printf("%s",a[l-1]);
	for(i=l-2;i>=0;i--)
		printf(" %s",a[i]);
	return 0;
}
int main ()
{
    int n=0;
    char words[100][100],temp; 
    do
    {
         cin>>words[n];
         n++;
         temp=getchar();
    }while (temp!='\n');
    for (int i=1;i<=n-1;++i)
        cout<<words[n-i]<<" ";
    cout<<words[0]<<endl;
    return 0;
}
void main()
{
	void inv(char s[]);
	char c[100];
	gets(c);
	inv(c);
}

void inv(char s[])
{
	char *p,*q;
	int k;
	k=strlen(s);
	for(p=s+k-1;p>=s;p--)
		if(*p==' ')
		{
			for(q=p+1;*q!=' '&&*q!='\0';q++)
				printf("%c",*q);
			printf(" ");
		}
	for(p=s;*p!=' '&&*p!='\0';p++)
		printf("%c",*p);
}
int main ()
{
	char A[100][100]={'\n'};
	char c;
	int i=1;
	int j=1;
	while(c=cin.get())
	{
		if(c==' ')
		{
			j=1;
			i++;
			continue;
		}
		if(c=='\n')
		{
			break;
		}

		A[i][j]=c;
		j++;
		

	}

		
	for(int t=i;t>1;t--)
	{
		for(int j=1;j<100;j++)
		{
		  if(A[t][j]!='\0')
		  {
		    cout<<A[t][j];
		  }
		  if(j==99)
		  {
			  cout<<' ';
		  }

		}

	}
	for(int j=1;j<100;j++)
	{
		 if(A[1][j]!='\0')
		  {
		    cout<<A[1][j];
		  }

	}
	
	return 0;
}
void main()
{
	char a[101];
	char b[50][100];
	int i,j=0,k=0,n;
	gets(a);
	for(i=0;i<101&&a[i]!='\0';i++)
		if(a[i]!=' ')
		{
			b[j][k]=a[i];
			k++;
		}
		else
		{
			b[j][k]='\0';
			j++;
			k=0;
		}
		b[j][k]='\0';
	n=j;
	for(i=n;i>0;i--)
		printf("%s ",b[i]);
	printf("%s\n",b[0]);
}
void main()
{
	int n,i,j,k=0;
	char a[101],*p;
	gets(a);
	n=strlen(a);
	for(p=a+n-1,i=0;i<n;i++,p--)
	    if(*p==' ') 
		{
			for(j=1;j<=k;j++)
				printf("%c",*(p+j));
		    k=0;
			printf(" ");
		}
		else
		{
			k++;
			if(p==a)
				for(j=0;j<k;j++)
				printf("%c",*(p+j));
		}
}
int main()
{
    char words[100][100],gt;
    int m;
    for(int i=0;i<100;i++)
    {
        cin>>words[i];
        gt=getchar();
        if(gt=='\n')
        {
            m=i;
            break;
        }
    }
    for(int i=m;i>0;i--)cout<<words[i]<<' ';
    cout<<words[0];
    return 0;
}
void main()
{
	int i=0,j=0,k=0;
	char ch1[100],ch2[100][100],ch3[100];
	gets(ch1);
	while(ch1[i]!='\0')
	{
		if(ch1[i]!=' ')
		{
			ch3[j]=ch1[i];
			j++;
		}
		else
		{
			ch3[j]='\0';
			strcpy(ch2[k],ch3);
			k++;
			j=0;
		}
		i++;		
	}
	ch3[j]='\0';
	strcpy(ch2[k],ch3);
	for(;k>0;k--)
	printf("%s ",ch2[k]);
	printf("%s",ch2[0]);
}
int main()
{
 char *p;
 char (*q)[20];
 int i=0,j=0,k;
 p=(char *)malloc(sizeof(char)*100);
 q=(char *)calloc(50,sizeof(char)*20);
 gets(p);
 for(k=0;k<strlen(p);k++)
 {if(*(p+k)!=' ')
  {*(*(q+i)+j)=*(p+k);j++;}
  else i++,j=0;
 }
 for(k=i;k>0;k--)
 printf("%s ",*(q+k));
 printf("%s",*q);
}
void turn(char *a)
{
 char b[100][200],c[200]="";
 int i,j=0,k,l;
 for(i=0;a[i];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';
   j++;
  strcpy(a,c);
  for(i=j-1;i>=0;i--)
  {
   strcat(a,b[i]);
   strcat(a," ");
   if(i==0)
    strcat(a,"\0");
  }
}
void main()
{
	int r;
    char a[200];
    gets(a);
    r=strlen(a);
    turn(a);
	a[r]=0;
    puts(a);
}
int main()
{
	char a[101],*p1,*p2,*p;
	gets(a);
	for(p1=a;*p1!='\0';p1++);
	p2=p1;
	do{
		p1--;
		while(*p1!=' '&&p1>a) p1--;
		if(p1!=a)
		{
			for(p=p1+1;p<p2;p++) printf("%c",*p);
		    printf(" ");
		}
		else
			for(p=p1;p<p2;p++) printf("%c",*p);
		p2=p1;
	}while(p1>a);
	return 0;
}
void main()
{
	char c[100];
	int n,i,j,t;
	gets(c);
	n=strlen(c);
	t=n;
	for(i=n-1;i>=0;i--)
		if(c[i]==' ')
		{
			for(j=i+1;j<t;j++)
				printf("%c",c[j]);
            t=i;
            printf(" ");
		}
	for(j=0;j<t;j++)
		printf("%c",c[j]);
	printf("\n");
}
/*???????????(????????)?????????????????????????

????
?????????????????100?

????
????????????? */
int main()
{
	char a[1000];int b[100],j=1;
	cin.getline(a,1000,'\n');
	int c=strlen(a);
	for(int i=0;i<c;i++)
	{
		if(a[i]==' ')
		{
			 b[j]=i;j++;
		}
	}
  b[j]=c;
	for(int k=j-1;k>0;k--)
	{
		for(int i=b[k]+1;i<=b[k+1]-1;i++)
			cout<<a[i];
		cout<<" ";
	}
	for(int i=0;i<b[1];i++)
		cout<<a[i];
	return 0;
}
void main()
{
	char *p,str[110];
	int n,i;
	gets(str);
	n=strlen(str);
	for(i=n-1;i>=0;i--)
		*(str+i+1)=*(str+i);
	*str=*(str+n+1)=' ';
	for(i=n-1;i>=0;i--)
	if(*(str+i)==' ')
	{for(p=str+i+1;*p!=' ';p++)
		 printf("%c",*p);
	if(i!=0) printf(" ");
	}
}
int main()
{
	char str[100];
	int end,begin,len,i,j;
	gets(str);
	len=strlen(str);
	end=len-1;
	for (i=len;i>=0;i--)
		if (str[i]==' ' || i==0)
		{
			if (i==0) 
				begin=0;
			else
				begin=i+1;
			for (j=begin;j<=end;j++)
				printf("%c",str[j]);
			if (i!=0)
				printf(" ");
			end=i-1;
		}
	printf("\n");
	return 0;
}
void main()
{
	int i,l;
	char a[100]={'\0'},b[100]={'\0'};
	gets(a);
	l=strlen(a);
	for(i=l;i>0;i--)
	{ 
		a[i]=a[i-1];		
	}
	a[0]=' ';
	for(i=l;i>=0;i--)
	{
		if(a[i]==' ')
		{
			printf("%s",&a[i+1]);
			a[i]='\0';
			if(i>0)printf(" ");
		}
	}
	return;
}
int main()
{
	char q[100][100]={0};
	int n,i,j;
	char c;
	for(int i1=0;i1<=99;i1++)
	{
		scanf("%s",q[i1]);
		c=getchar();
		if(c=='\n') {n=i1;break;}
	}
	for(i=n;i>=1;i--)
	{
		printf("%s ",q[i]);
	}
	printf("%s",q[0]);
	return 0;
}
int main()
{
    char c[100];
    gets(c);
    int l,j;
    l=strlen(c);
    int i,t; 
    t=l; 
    for(i=l-1;i>=0;i--)
    {
               if (c[i]==' ')
                  {
                           for(j=i+1;j<t;j++)
                           {
                                             printf("%c",c[j]);
                           }
                           printf(" ");
                           t=i;
                  }
    }
    for(i=0;i<l;i++)
    {
                 if(c[i]==' ')
                 break;
                 else
                 printf("%c",c[i]);
    }
    getchar();
    getchar();
}
int main(int argc, char* argv[])
{
	
	char a[102];

	int i,ch,j;
	gets(a);
	ch=strlen(a);
	int shu[102];
	int m=0;
	for(i=0;i<ch;i++)
	{
		if(a[i]>'z'||a[i]<'A')
		{
			a[i]=100;
			m++;
			shu[m]=i;
		}
	}
	if(m!=0)
	{
	for(i=shu[m]+1;i<ch;i++)
	{
		printf("%c",a[i]);
	}
	printf(" ");
	for(i=m-1;i>=1;i--)
	{
		for(j=shu[i]+1;j<shu[i+1];j++)
		{
			printf("%c",a[j]);
		}
		printf(" ");
	}
	for(i=0;i<shu[1];i++)
	{
		printf("%c",a[i]);
	}
	}
	else
	printf("%s",a);

	return 0;
}