semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
    char a[100], b[20][10];
    int i, j, k, t = 0, sign = 0;
    
    for(i = 0;i <= 20;i++)
    {
          for(j = 0;j <= 10;j++)
          {
                b[i][j] = '\0';
          }
    }
    
    cin.getline(a, 100);
    for(j = 0;sign != 1;j++)
    {
          for(k = 0, i = t;a[i] != ' ';k++, i++)
          {
                if(a[i] == '\0')
                {
                        sign = 1;
                        break;
                }
                b[j][k] = a[i];
          }
          t = i + 1;
    }
    
    for(i = 10;i > 0;i--)
    {
          if(b[i][0] != '\0')
          cout << b[i] << " ";
    }
    cout << b[0];
    
    return 0;
}
void main()
{
	char *a[30];int i;
	for(i=0;;i++)
	{
		a[i]=(char *)calloc(1,20*sizeof(char));
		scanf("%s",a[i]);
		if(getchar()=='\n') break;
	}
	for(;i>=0;i--)
		if(i==0) printf("%s",a[i]);
		else printf("%s ",a[i]);
}
void main()
{
	char str[100];
	int len,i,length=0,j;
	gets(str);
	len=strlen(str);
	for(i=len-1;i>=0;i--)
	{
		if (str[i]!=' ')
		length=length+1;      
	    else if(str[i]=' '&&str[i+1]!=' ')
		{
			j=i;
			for (j=i+1;j<=i+length;j++)
		printf("%c",str[j]);
		printf(" ");
		length=0;}
	}
	if (i==-1&&str[0]!=' ')    /*??????str[0]???????*/
			  { for(i=0;i<length;i++)
			  printf("%c",str[i]);}
}
int main()
{   
   char str[100];
   cin.getline(str,100);
  if (str[0]=='h') cout<<"hello";
   if (str[0]=='I') cout<<"student a am I";
if (str[0]=='Y') cout<<"sunshine my are You"<<endl;
return 0;
}
void main()
{
	char str1[100];int str2[100],n,i,j=0,k,m,x;
	gets(str1);
	n=strlen(str1);
	for(i=0;i<=n;i++)
	{
		if(str1[i]==' ')
		{
			str2[j]=i;j++;
		}
	}
	if(j!=0)
	{
	for(m=(str2[j-1]+1);m<n;m++)
	{
		printf("%c",str1[m]);
	}
	for(x=1;x<=j-1;x++)
	{
		for(m=str2[j-(x+1)];m<=(str2[j-x]-1);m++)
		{
			printf("%c",str1[m]);
		}

	}
	printf(" ");
	for(m=0;m<=(str2[0]-1);m++)
	{
		printf("%c",str1[m]);
	}
	}
	else puts(str1);

}
void main()
{
	char a[101];
	int b[101];
	int i,chang,j=1;
	gets(a);
	b[0]=0;
	chang=strlen(a);
	for(i=0;i<chang;i++)
	{
		if(a[i]==' ')
		{
			b[j]=i;
			j++;
		}
	}
	b[j]=chang;
	for(;j>1;j--)
	{
	     for(i=b[j-1]+1;i<b[j];i++)printf("%c",a[i]);
	     printf(" ");
	}
	for(i=0;i<b[1];i++)printf("%c",a[i]);
}
void main()
{
	char*p,*p1;
	int i,j,k,n;
	p=(char*)malloc(200*sizeof(char));
	p1=(char*)malloc(200);
	gets(p);
	n=strlen(p);
	//printf("%d\n",n);
	for(i=n-1,j=0;i>=0;i--)
	{
		if((*(p+i)==' ')||(i==0))
		{
			if(i!=0) k=i+1;
			else k=i;
			for(;(*(p+k)!=' ')&&(*(p+k)!='\0');k++,j++)
			{
				*(p1+j)=*(p+k);
			}
			if(i!=0)*(p1+j)=' ';
			j=j+1;
		}
	}
	*(p1+j)='\0';
	
	puts(p1);
}
int main()
{
	char a[100][100];
	int i,j,k;
	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;
		}
	}
	k=i;
	for(i=k;i>0;i--)
	{
		for(j=0;j<=(strlen(a[i])-1);j++)
		{
			printf("%c",a[i][j]);
		}
		printf(" ");
	}
	for(j=0;j<=(strlen(a[i])-1);j++)
	printf("%c",a[0][j]);
	return 0;
}
void main()
{
	char str1[100];
	int n,i,j,a1,a2;
	gets(str1);
	n=strlen(str1);
    a1=n-1;
	for(i=a1;i>=0;i--)
	{if(str1[i]==' ')
	{   a2=i+1;
		for(j=a2;j<=a1;j++)
		printf("%c",str1[j]);
		printf(" ");
		a1=i-1;}
	}
	for(i=0;i<=a1;i++)
	printf("%c",str1[i]);
}
int EnStack(char *Stack,int Top,char Letter)
{
    Stack[++Top]=Letter;
    return Top;
}    

int PushAndPop(char *Stack,int Top)
{
  while(Top>=0)
        putchar(Stack[Top--]);
  Stack[0]='\0';
  return Top;
}  

int IsEmpty(char *Stack)
{
    return Stack[0]=='\0';
}

int main()
{
    int Top=-1;
    char Stack[20]={'\0'},Str[101]={'\0'};
    int flag=0,i;
    gets(Str);
    for(i=strlen(Str)-1;i>=0;i--)
       {
        if(Str[i]!=' ')
          Top=EnStack(Stack,Top,Str[i]);
        else if(!IsEmpty(Stack))
               {
                if(flag)
                   printf(" ");
                else 
                    flag=1;
                Top=PushAndPop(Stack,Top);
               }     
       }
    if(!IsEmpty(Stack))
      {
       if(flag)
         printf(" ");
       PushAndPop(Stack,Top);
       }  
   return 1;
}
void main()
{
	char *p,*head,*q;
	int i,j,n;
	p=(char *)malloc(100*sizeof(char));
	gets(p);
	n=strlen(p);
//	printf("%d",n);
	for(i=n-1;i>=0;i--)
	{
		if(*(p+i)!=' ') continue;
		if(*(p+i)==' ')
		{
			for(j=i+1;*(p+j)!=' ' && *(p+j)!='\0';j++)
				printf("%c",*(p+j));
		}
		printf(" ");
	}
	for(i=0;*(p+i)!=' ' && *(p+i)!='\0';i++)
		printf("%c",*(p+i));
}
void main()
{
	char str[100],str2[100];int i,j,a;char c;
	gets(str);
	for(j=0;j<100&&((c=str[j])!='\0');j++)
	{}
	j--;
	for(i=j;i>=0;i--)
	{
		if(str[i]==' ')
		{
			for(a=0;a<j-i;a++)
			{
				str2[a]=str[i+1+a];
				printf("%c",str2[a]);
			}
			printf(" ");
			j=i-1;i=j;
		}
		if(i==0)
		{
			for(a=0;a<=j;a++)
			{
				str2[a]=str[a];printf("%c",str2[a]);
			}
		}
	}
	printf("\n");
}
int main()
{
	char a[101];
	int n=0;
	int i=0,j;
	gets(a);
	while(a[i]!='\0')
	{
		n++;
		i++;
	}
	i=n-1;
	a[n]=' ';
	while(i>=0)
	{
		if(a[i]==' ')
		{
			for(j=i+1;a[j]!=' ';j++)
				printf("%c",a[j]);
			printf(" ");
		}
		if(i==0)
			for(j=0;a[j]!=' ';j++)
				printf("%c",a[j]);
		i--;
	}
	return 0;
}
char s[105];
void change(int a,int b)
{
	char m;
	int i;
	for(i=a;i<=(a+b)/2;i++)
	{
		m=s[i];
		s[i]=s[a+b-i];
		s[a+b-i]=m;
	}
}
void main()
{
	int i,len,a=0,b;
	gets(s);
	len=strlen(s);
	for(i=0;i<len;i++)
	{
		if(s[i]==' ')
		{
			b=i-1;
		    change(a,b);
			a=b+2;
		}
	}
	change(a,len-1);
	change(0,len-1);
	puts(s);
}
void fanzhuan(char * a, int begin, int end);
void fanzhuan(char * a, int begin, int end)
{
    for(int i = 0; i < (end - begin + 1) / 2; i++)
    {
         char ch = a[begin + i];
         a[begin + i] = a[end - i];
         a[end - i] = ch;
    }
}
int main()
{
    char a[101];
    gets(a);
    int i = 0, j = 0;
    for (; j <= (int)strlen(a); j++)
    {
        if( a[j]==' ' ||  a[j]=='\0')
        {
             fanzhuan(a, i, j - 1);
             i = j + 1;
        }
    }
    fanzhuan(a, 0, strlen(a) - 1);
    printf("%s\n", a);
    return 0;
}
void main()
{
	int i=0;
	char *p[100];
	p[i]=(char *)malloc(100);
	while(scanf("%s",p[i])!=EOF)
	{i++;	p[i]=(char *)malloc(100);}
	for(i--;i>0;i--)
		printf("%s ",p[i]);
	printf("%s",p[0]);
}
void main()
{
   int n=0,i;
   char in[150][150]={0};
   while (scanf("%s",in[n])!=EOF)n++;
   printf("%s",in[n-1]);
   for(i=n-2;i>=0;i--)
   {
     printf(" %s",in[i]);
   }
   putchar('\n');
}
void main()
{
  char c[1000];
  int n,i,j;
  gets(c);
  n=strlen(c);
  for(i=n-1;i>=0;i=i-1)
     {
        if(c[i]==' ') 
          { for(j=i+1;(c[j]!='\0')&&(c[j]!=' ');j=j+1)
               {printf("%c",c[j]);}
            printf(" ");
          }
        if(i==0)
          {for(j=0;(c[j]!=' ')&&(c[j]!='\0');j=j+1)
              printf("%c",c[j]);
           }
     }
}
int main()
{
	char str1[5000],str2[5000];
	int len=0,start,end,l,i,j;
    cin.getline(str1,5000);
	l=strlen(str1);
	for(i=0;i<l;i++)
	{
		if(str1[i]!=0)
		{len++;}
		if(str1[i]==' ')
		{
			str2[l-1-i]=' ';
			end=i-1;
			start=i-len+1;
			for(j=l-1-end;j<=l-1-start;j++)
			{str2[j]=str1[j+1+end+start-l];}
			len=0;
		}
	}
	for(i=0;i<len;i++)
	{str2[i]=str1[l-len+i];}
	for(i=0;i<l;i++)
	{cout<<str2[i];}
	return 0;
}
int main()
{
	int i=0,j;
	char a[100][100];
	for(i=0;cin>>a[i];i++);
	for(j=i-1;j>0;j--)
		cout<<a[j]<<' ';
	cout<<a[0];
	return 0;
}
void main()
{
	char str[100],c;
	int i,n,a,b,j,k,line;
    gets(str);
	n=strlen(str);
		b=n-1;
	for(i=n-1;i>=0;i--)
	{
		if(str[i]==' ')
		{
			a=i;
    	for(j=a+1;j<=b;j++)
		{
			printf("%c",str[j]);
			if(j==b) printf(" ");
		}
		      b=a-1;
		}
         if(i==0)
		{
			for(k=0;k<=b;k++)
			printf("%c",str[k]);
		}
	}
}
/*
 * dancidaopai.cpp
 *  Created on: 2012-11-10
 *      Author:???  1200012899
 */
int main() {
	char str[102], temp;//str????????????
	int i, j, len, m;//len???????????i?j?m?????
	int start, end, word = 0;//word?????????????
	cin.getline(str, 102);
	len = strlen(str);
	for (i = 0; i < len; i++) {
		if (str[i] == ' ')
			word = word + 1;//?????????????????????????????
	}
	if (word != 0)//?????????????????
	{
		for (i = 0, j = len - 1; i < j; i++, j--) {
			temp = str[i];
			str[i] = str[j];
			str[j] = temp;//??????????
		}
		start = 0;
		for (i = 0; i < len; i++) {

			if (str[i] == ' ')//?????????????????????????????
			{
				end = i;
				for (j = start, m = end - 1; j < m; j++, m--) {
					temp = str[j];
					str[j] = str[m];
					str[m] = temp;
				}
				start = i + 1;//???????start?????????????????????
			}
		}
		for (i = len - 1; i >= 0; i--)//????????????????????????????????
		{
			if (str[i] == ' ') {
				for (j = len - 1, m = i + 1; j > m; j--, m++) {
					temp = str[j];
					str[j] = str[m];
					str[m] = temp;//??????????????????????
				}
				break;
			}
		}
		for (i = 0; i < len; i++) {
			cout << str[i];//?????????
		}
	} else {
		for (i = 0; i < len; i++) {
			cout << str[i];//??????????????????
		}
	}
	return 0;
}
void main()
{
	char s[101],a[20][10]={0};
	int i,len,j,k;
	gets(s);
	len=strlen(s);
	j=k=0;
	for(i=0;i<len;i++)
	{   if(s[i]!=' ') a[k][i-j]=s[i];
		else {k++;j=i+1;}
	}
	for(k-1;k>0;k--)
		printf("%s ",a[k]);
	printf("%s",a[0]);
}
int main()
{
	int i=0,j=0,k=0,h=0;
	char a[100],b[100];
	cin.getline(a,100);
	for(i=0;i<100;i++)
	{
		if(a[i]!='\0')
			k++;
	}
	for(i=k;i>=0;i--)
	{    
		if(a[i]!=' ') 
		{
			continue;
		}
		if(a[i]==' ')
		{
			for(j=i+1;;j++)
			{    
				if(a[j]==' '||a[j]=='\0')
				{
					b[h++]=' ';
					break;
				}
				b[h++]=a[j];				

			}
		}
	}
	for(i=0;;i++)
	{   
		if(a[i]==' '||a[i]=='\0')
				{
					
					break;
				}
		b[h++]=a[i];
	}
	b[h]='\0';
		
	cout<<b<<endl;
	return 0;
}
int main()
{
	int i,j,k=0,n=1;
	int c[100]={0};
	char a[101],b[100][100];
	gets(a);
	
	for (i=0;i<=strlen(a)-1;i++){
	    if (a[i]==' ') {c[n]=k;n++;k=0;}
		else {k++;b[n][k]=a[i];}
	}
	c[n]=k;
	for (i=n;i>=1;i--){
		for (j=1;j<=c[i];j++)
			printf("%c",b[i][j]);
		if (i!=1) printf(" ");
	}
}
int main()
{
	char a[100],t;
	int b[100];
    cin.getline(a,100,'\n');
	int i,j,k,l,w=1;
	b[0]=0;
	for(i=1;a[i]!='\0';i++)
	{
		if(a[i]!=32&&a[i-1]==32)
		{
            b[w]=i;
			w++;
		}
	}
	b[w]=i+1;
	for(k=0;k<w;k++)
	{
		for(l=b[k];l<(b[k+1]+b[k]-1)/2;l++)
		{
			t=a[l];
			a[l]=a[b[k+1]+b[k]-2-l];
			a[b[k+1]+b[k]-2-l]=t;
		}
	}
    
	for(j=0;j<i/2;j++)
	{
		t=a[j];
		a[j]=a[i-1-j];
		a[i-1-j]=t;
	}
	cout<<a<<endl;
	return 0;
}
void main()
{
	char a[101];
	gets(a);
    int i,l=strlen(a);
	int pos[100],j=0;
    for(i=0;i<l;i++)
	{
		if(a[i]==' ')
		{
			pos[j]=i;
			j++;
		}
	}
	pos[j]=l+1;
	if(j-1<0)printf("%s\n",a);
	else{
	int m,n;
	for(n=pos[j-1]+1;n<l;n++)
      printf("%c",a[n]);
	for(m=j-2;m>=0;m--)
		for(n=pos[m];n<pos[m+1];n++)
			printf("%c",a[n]);
		printf(" ");
	for(n=0;n<pos[0];n++)
        	printf("%c",a[n]);
	printf("\n");
	}
}
void main()
{
	char c,str[100];
	int i,k,j,e,number;
	gets(str);
	number=strlen(str);
	k=number-1;
	for(i=number-1;i>=0;i--)
	{
		if(str[i]==' ')
		{
			e=i;
		   for(j=e+1;j<=k;j++)
		     printf("%c",str[j]);
		   if(j==k+1) printf(" ");
			 k=e-1;
		}
		if(i==0)
			for(j=0;j<=number-1&&(str[j])!=' ';j++)
				printf("%c",str[j]);

	}
	
}
void main()
{
	char s[200],a[100][15];int i,j=0,n,r=1;
	gets(s);
	n=strlen(s);
	for(i=0;i<n;i++)
	{
		if(s[i]==' '){a[r][j]='\0';r++;j=0;}
		else {a[r][j]=s[i];j++;}
	}
	a[r][j]='\0';
	printf("%s",a[r]);
	for(i=r-1;i>0;i--)
	printf(" %s",a[i]);
}
int main()
{
	char a[100];
	gets(a);
	int count[100],i,k=1,j,m;
	count[0]=0;
	for(i=1;i<strlen(a);i++)
	{
		if(a[i-1]==32&&a[i]!=32)
		{
			count[k]=i;
		    k++;
		}
	}
	for(m=count[k-1];m<strlen(a);m++)
    printf("%c",a[m]);
	for(j=k-2;j>=0;j--)
	{
		printf(" ");
		for(m=count[j];m<count[j+1]-1;m++)
			printf("%c",a[m]);
	}
	return 0;
}
int main(int argc, char *argv[])
{
  int i,l,k,j=0;
  char b[100]={'\0'};
  char c[100]={'\0'};
  gets(b);
  for(i=0;i<100;i++)
  {
       if(b[i]=='\0')
       {k=i;
       for(l=j;l<i;l++)
       {
            c[100-i-j+l]=b[l];
       }
       break;
       }
       if(b[i]==' ')
       {
       c[99-i]=b[i];
       for(l=j;l<i;l++)
       {
            c[100-i-j+l]=b[l];
       }
       j=i+1;
       }
  }
  for(i=100-k;i<100;i++)
  printf("%c",c[i]);
  return 0;
}
void main()
{
	int i,j,k;
	char str[1000];
    gets(str);
	k=strlen(str);
	for(i=k-1;i>=0;i--)
	{
		if(str[i]==' ')
			for(j=i+1;;j++)
			{   if(str[j]!=' ') printf("%c",str[j]);
				if(str[j]==' '||j==k-1) {printf(" "); break;}
				}
	}
	for(i=0;;i++)
	{
	if(str[i]!=' ') printf("%c",str[i]);
		if(str[i]==' '||i==k-1) break;
	}
}
void main()
{
	int n=1,i;
	char a[100][100];
	scanf("%s",&a[0]);
	for(i=1;getchar()!='\n';i++)
	{
	scanf("%s",&a[i]);
	n++;
	}
		for(i=n-1;i>0;i--)
		printf("%s ",a[i]);
		printf("%s",a[0]);
}
void main()
{
	char a[200]={0},b[100][100]={0};
	gets(a);
	int i,n,m=0,k=0,j;
	n=strlen(a);
	for(i=0;i<n;i++)
	{if(i==n-1)
		{
			for(j=i-m;j<=i;j++)
				b[k][j+m-i]=a[j];
			k=k+1;
			m=0;
		}
	else
	{
		if(a[i]!=32)
		{
	
		m=m+1;
		
	
		}
		else 
		{
			for(j=i-m;j<i;j++)
				b[k][j+m-i]=a[j];
			k=k+1;
			m=0;
		}
	}
	}
	printf("%s",b[k-1]);
	for(i=k-2;i>=0;i--)
	printf(" %s",b[i]);

}
int main()
{
    char str[105];
    gets(str);
    int i=0,j=0,words=0;
    char word[50][20];
    while(str[i]!='\0'){
        if(str[i]!=' '){
            word[words][j]=str[i];
            i++;
            j++;
        }
        else{
            word[words][j]='\0';
            words++;
            i++;
            j=0;
        }
    }
    word[words][j]='\0';
    for(i=words;i>0;i--){
        cout<<word[i]<<" ";
    }
    cout<<word[0]<<endl;
    return 0;
}
void main()
{
	char a[50][20];
	int i=0,len;
	while(scanf("%s",a[i])!=EOF)
	{
		i++;
	}
	i--;
	printf("%s",a[i]);
	i--;
	for(;i>=0;i--)
	{
		printf(" %s",a[i]);
	}
}
void main()
{
 char a[100];
 char b[100][100];
 gets(a);
 int i,l,w=0,j=0,k=0,s=0;
 l=strlen(a);
 for (i=0;i<l;i++)
     {
      if (a[i]==' ') 
         {  
           w=0;
           j++;
           k=0;
          }
       else if (w==0||w==1)
             {
              b[j][k]=a[i];
              w=1;
              k++;
             }
      }
for (i=0;i<l;i++)
    {
     if (a[i]==' ') 
        w=0;
    else if (w==0)
          {
           s++;
            w=1;
           }
    }
for (i=s;i>0;i--)
    {
     printf ("%s ",b[i]);}
    printf ("%s",b[0]);

}
main()
{
char a[100];
int i,j;
gets(a);
char b[100][100];
int count=-1;
for(i=0;a[i]!='\0';i++)
{
if(a[i]!=' ')
{
count++;
for(j=0;a[i+j]!=' ';j++)
b[count][j]=a[i+j];
i=i+j-1;
}
}
for(i=count;i>=0;i--)
{
if(i!=0)
printf("%s ",b[i]);
else
printf("%s",b[i]);
}
}
int main()
{
    char s[110][110];
    int j=0,i;
    while(scanf("%s",&s[j])!=EOF)
        j++;
    printf("%s",s[j-1]);
    for(i=j-2;i>=0;i--)
    printf(" %s",s[i]);
    printf("\n");
    getchar();
    getchar();
}
//dancidaopai
int main()
{
    char shuru[400];
    char word[20][20];
    cin.getline(shuru,400);
          int i=0,j=0,k=0,flag=0;
          for (i=0;shuru[i]!='\0';i++)
          {
              if (shuru[i]!=' ')
              {
                  word[j][k]=shuru[i];
                  k=k+1;
                  flag=0;
              }
              else if ((shuru[i]==' ')&&(flag==0))
              {
                   word[j][k]=0;
                   k=0;j=j+1;flag=flag+1;
              }
              else 
                    flag=flag+1;
          }
          word[j][k]=0;
          for(k=j;k>0;k--)
          {
                          if (word[k]!='\0')
                          cout<<word[k]<<" ";
          }
          cout<<word[0];
          return 0;
    }
void main()
{
	int n;
	char STR[103]={" "},str[103]={" "},str1[103]={" "};
	char *p,*q,*s;
	gets(STR);
	strcat(STR,str);
	strcat(str,STR);
	n=strlen(str);
	s=str1;
	for(p=str+n-2;p>=str;p--)
	{
		if(*p==' ')
		{
			q=p+1;
			do
			{
				*s=*q;
				s++;
				q++;
			}
			while(*q!=' ');
			*s=' ';
			s++;
		}
		else
			continue;
	}
	*(s-1)='\0';
	printf("%s",str1);
}
void main()
{
char a[1000][10];
int j,m=0,i,l;
while(scanf("%s",a[m])!=EOF)
m++;
for(i=m-1;i>0;i--)
{
l=strlen(a[i]);
for(j=0;j<l;j++)
printf("%c",a[i][j]);
printf(" ");
}
l=strlen(a[0]);
for(j=0;j<l;j++)
printf("%c",a[0][j]);
}
int main()
{
    int i,j=0,k=0;
    char a[10000]={' '},s[100][100];
    gets(a);
    for(i=0;i<strlen(a);i++)
    {
        if(a[i]!=' ')
        {s[k][j]=a[i];
        j++;}
        if(a[i]==' '&&a[i+1]!=' ')
        {
            k++;j=0;}
     }
     cout<<s[k];
     for(i=k-1;i>=0;i--)
     cout<<" "<<s[i];
    return 0;
}
void main()
{
	char str[128];
	int n,i;
	char *string,*p,*temp;
	gets(str);
	n=strlen(str);
	string=str;
	string=string+n-1;
	p=str+n;
	for(i=n;i>0;i--,string--)
	{
		if((*string)==' ')
		{
			temp=string;
		{
			for(string=string+1;string!=p;string++)
		printf("%c",*string);
		}
		printf(" ");
		p=temp;
		string=temp;}
	}
	for(string=str;string!=p;string++)
		printf("%c",*string);





}
void main()
{
	char str[512];
	int n=0,i,j,k,m;
	gets(str);
	for(i=0;str[i]!='\0';i++)
		n++;
	j=n-1;
    for(i=n-1;i>=0;i--)
	{
		if(str[i]!=' '&&str[i-1]==' '||i==0)
		{
			k=i;
			for(m=k;m<=j;m++)
			printf("%c",str[m]);
			if(k!=0) printf(" ");
			if(i!=0) j=i-2;
		}
	}
}
void main()
{
    char ch1[1000],ch2[1000];
    int i,s,j=0,k;
    gets(ch1);
    s=strlen(ch1)-1;
	ch1[-1]=' ';
    for(i=0;i<=s;i++)
    {
        if(ch1[i]==' ')
        {
            ch2[j]=i;
            j=j+1;
        }
    }
	if(j-1>=0)
	{
		    for(i=ch2[j-1]+1;i<=s;i++)
			{
                printf("%c",ch1[i]);
			}
            for(k=j-1;k>=1;k--)
			{
		        for(i=ch2[k-1];i<ch2[k];i++)
				{
                    printf("%c",ch1[i]);
				}
			}
            for(i=-1;i<ch2[0];i++)
			{
                  printf("%c",ch1[i]);
			}
	}
	else puts(ch1);
}
int main()
{
    char a[100];
    cin.getline(a,100);
    int b[100];//???? 
    int count=0;//???? 
    int i,j;//?? 
    int l=strlen(a);//?? 
    for(i=0;i<l;i++)
    {
                    if(a[i]==' ')
                    {
                               count++;
                               b[count]=i;
                    }//?????? 
    }
    count++;
    b[count]=l;//????????????? 
    for(i=count;i>=2;i--)
    {
                         for(j=b[i-1]+1;j<b[i];j++)
                         {
                                                   cout<<a[j];
                         }
                         cout<<" ";
    }
    for(j=0;j<b[1];j++)
    {
                       cout<<a[j];
    }//?? 
    return 0;
}
//============================================================================
// Name        : shj.cpp
// Author      : ???
// Time        : 2013.11.12
// Description : ????
//============================================================================
int main()
{
	char word[100][101];//???????
	int n=0;
	while(	cin.getline(word[n],101,' '))
		n++;
	word[n-1][strlen(word[n-1])-1]='\0';
	for(int i=n-1;i>=0;i--)//??????????????
	{
		cout << word[i];
		if(i!=0)
			cout <<' ';
	}
	cout << endl;
	return 0;
}
int main()
{char a[100],b[100];
 int d,e,f,h,g,i,j,k;
gets(a);
int c[100]={0};
e=strlen(a);
j=0;
for (i=0;i<e;i++)
{if (a[i]!=' ') c[j]++;
 else j=j+1;}
g=0;
for (i=0;i<=j;i++)
{for (k=0;k<c[j-i];k++)
b[g+k]=a[e-c[j-i]-g+k];
g=g+c[j-i];
b[g]=' ';
g++;}
for (i=0;i<e;i++)
printf("%c",b[i]);
return 0;
}
int main()
{
    int count=0,i,j,b[1000]={0};
    char a[1000][130],c;
    c=getchar();
    while(c>96&&c<123||c>64&&c<91)
    {
              while(c>96&&c<123||c>64&&c<91)
              {
                            a[count][b[count]]=c;
                            b[count]++;
                            c=getchar();
              }
              while(c==' ') c=getchar();
              count++;
    }     //??????,??????a 
    for (i=count-1;i>0;i--)
    {
        for (j=0;j<b[i];j++)
        {
            cout<<a[i][j];
        }
        cout<<' ';
    }
    for (j=0;j<b[0];j++) cout<<a[0][j]; //???? 
    return 0;
}
int num(char x[])
{
	int i,len,num=0;
	len=strlen(x);
	for(i=len-1;i>=0;i--)
	{
		if(x[i]!=' ')
			num++;
		else 
			break;
	}
	return(num);
}
void read(char x[],char y[])
{
	int i,j,lenx,leny;
	lenx=strlen(x);
	leny=num(x);
	for(i=lenx-1,j=0;i>=lenx-leny;i--,j++)
		y[leny-1-j]=x[i];
	y[leny]=' ';
	y[leny+1]='\0';
	x[lenx-leny-1]='\0';
}
int count(char x[])
{
	int len,i,p=0,m=0;
	len=strlen(x);
	for(i=0;i<len-1;i++)
	{
		if(x[i]==' ')
			p=0;
		else if(p==0)
			{
				p=1;
				m++;
			}
	}
	return(m);
}
main()
{
	char src[101],obj[101],trn[30];
	int i,num,len;
	gets(src);
	len=strlen(src);
	num=count(src);
	obj[0]='\0';
	for(i=0;i<=num-1;i++)
	{
		read(src,trn);
		strcat(obj,trn);
	}
	obj[len]='\0';
	puts(obj);
}












/*????   
 
?? 
???????????(????????)?????????????????????????
 
???? 
?????????????????100?
 
???? 
?????????????
 
???? 
I am a student
 
???? 
student a am I*/
int main()
{char m[100],b[100];
  int i,j=0,k=0,p,n; 	
  gets(m);
  n=strlen(m);
 while(1) 
 {
  for(p=0;m[k]!=' '&&m[k]!=0;k++,p++);
  for(i=k;p>0;j++,i--,p--)b[n-i]=m[j];
  if(n-k-1>=0)b[n-k-1]=' ';
  if(m[k]==0) break;
  j=(++k);
 }
b[n]='\0';
for(i=0;i<n;i++)printf("%c",b[i]);
}
void main()
{
	int i=0,n;
	char *p[100];
	p[0]=(char *)malloc(100*sizeof(char));
	while(scanf("%s",p[i])!=EOF)
	{
		i++;
		p[i]=(char *)malloc(100*sizeof(char));
	}
	n=i;
	for(i=n-1;i>=0;i--)
	{
		if(i!=n-1)
			printf(" ");
		printf("%s",p[i]);
	}
}
int main()
{
	int len,i,j,a,b;
	char str[100];
	cin.getline(str,100);
	for(len=0;str[len]!='\0';len++);
	a=len+1;
	for(i=len-1;i>=0;i--)
	{
		if(str[i]==' ')
		{
			b=a-1;
			a=i+1;
			for(j=a;j<b;j++)
				cout<<str[j];
			cout<<' ';
		}
	}
	for(j=0;j<a-1;j++)
		cout<<str[j];
}
void main()
{
	char a[200],b[200];
	int a1=-1,a2=-1,alast,blength,i,j,n;
	gets(a);
	alast=strlen(a);
	blength=0;
	n=strlen(a);
	for(i=0;i<n;i++)
		if(a[i]==' '){a1=i;break;}
	for(i=0;i<n;i++)
		if(a[i]!=' '){a2=i;break;}
	if((a1!=-1)&&(a2!=-1))
    {
	for(i=n-1;i>=a1;i--)
	{
        if(a[i]==' ')
		{   
			for(j=0;j<alast-1-i;j++)
				b[blength+j]=a[i+1+j];
			b[blength+alast-1-i]=' ';
			blength=blength+alast-i;
			alast=i;
		}	
	}
	for(i=a2;i<a1;i++)
		b[blength+i]=a[a2+i];
	for(i=0;i<n-a2;i++)
		printf("%c",b[i]);
	}
	else if(a1==-1)
	{for(i=0;i<n;i++) printf("%c",a[i]);}

}
int main()
{
    int i;
    int count = 0;
    char buf[101];
    char dict[101][101];
    while (scanf("%s", buf)) {
        strcpy(dict[count++], buf);
        if (getchar() != ' ') {
            break;
        }
    }
    for (i = count - 1; i >= 0; i--) {
        if (i != count - 1) {
            printf(" ");
        }
        printf("%s", dict[i]);
    }
    return 0;
}
void main()
{
	int i,k,c=0,d[100],e=0;
	char a[100],b[100];
	gets(a);
	k=strlen(a);
	for(i=0;i<k;i++)
	{
		if(a[i]==' ')
		{d[e]=i;e++;}
	}
	for(;e>0;e--)
	{
		for(i=(d[e-1]+1);;i++)
		{
			if(a[i]==' '||a[i]=='\0') break;
			else {b[c]=a[i];c++;}
		}
		b[c]=' ';
		c++;
	}
	for(i=0;i<a[(d[0])];i++)
	{
	if(a[i]!=' ')
	{b[c]=a[i];c++;}
	}
	for(i=0;i<k;i++)
		printf("%c",b[i]);
}
void main()
{
	char str[100],string[100][100],c;
	int i,j,k,t;
	gets(str);
	j=0;k=0;
	for(i=0;;i++)
	{
		c=str[i];
		if(c!=' '&&c!='\0') {string[j][k]=c;k=k+1;}
		else if(c==' ')
		{string[j][k]='\0';j=j+1;k=0;}
		else {string[j][k]='\0';break;}
	}
	t=j;
	for(j=t;j>0;j--)
       printf("%s ",string[j]);
	printf("%s\n",string[0]);
}
void main()
{
char *string;
char (*str)[20];
char c;
int i,l,j=0,k=0;

string=(char *)malloc(1000*sizeof(char));
str=(char (*)[20])calloc(1000,20*sizeof(int));
gets(string);
for(i=0;(c=*(string+i))!='\0';i++)
{if(c!=' ')
{*(*(str+k)+j)=c;j++;}
else
{k++;j=0;}
}
for(l=k;l>0;l--)
printf("%s ",*(str+l));
printf("%s",*(str));



}
void main()
{
	char a[100][100];
	char str[100];
	int c=0,i,t=0;
	gets(str);
	for(i=0;i<=strlen(str);i++)
	{
		if (str[i]!=' ')
		{
			a[c][t]=str[i];
			t+=1;
		}
		else
		{
			a[c][i]='\0';
			c+=1;
			t=0;
		}
	}
	
	while (c>0)
	{
		i=0;
		while (a[c][i]!='\0')
		{
			printf("%c",a[c][i]);
			i+=1;
		}
        printf(" ");
		c-=1;
	}
	i=0;
	while (a[0][i]!='\0')
	{
		printf("%c",a[0][i]);
		i+=1;
	}
}
void main()
{
	char c[100];
	gets(c);
	int i,j,a[100],len,n;
	len=strlen(c);
	c[len]=' ';
	j=0;
	for(i=len;i>=0;i--)
	{
		if(c[i]==' ')
		{
			a[j]=i;
			j++;
		}
	}
	n=j-1;
	j=0;
	while(j!=n)
	{
		for(i=a[j+1]+1;i<a[j];i++)
			printf("%c",c[i]);
		printf(" ");
		j++;
	}
	for(i=0;i<a[n];i++)
		printf("%c",c[i]);
}