semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
main()
{
	char a[10][10],b[100],f[10],g[10],h[10],v[10];
	int i,j,l,c[100],m,n,e,d,k;
	gets(b);
	l=strlen(b);
		j=1;
	c[0]=-1;
	for(i=0;i<l;i++)
	{
		if(b[i]==32)
		{
			c[j]=i;
			j++;
		}
	}
	c[j]=l;
 
	for(n=j;n>0;n--)
	{
		e=c[n]-1;
		k=c[n-1]+1;
		for(m=k;m<=e;m++)
		{
			printf("%c",b[m]);
		}
		if(n>1)
		{
			printf(" ");
		}
		else
		{
		}
	}
}
int main()
{
	int i=0,j=0,k=0,l=0;
	char str[100];
	cin.getline(str,100);
	for(i=0;str[i]!='\0';i++)
		j=i;
	for(i=0;i<=j;i++)
	{
		if(str[i]==' ')
			l=l+1;
	}
	if(l!=0)
	{
    	for(i=j-1;i>=0;i--)
		{
	    	if(str[i]==' ')
			{
	    		for(k=i+1;k<=j;k++)
			    	cout<<str[k];
		    	j=i;
		    	break;
			}
		}
    	for(i=j-1;i>=0;i--)
		{
	    	if(str[i]==' ')
			{
		    	cout<<" ";
		    	for(k=i+1;k<j;k++)
			    	cout<<str[k];
		    	j=i;
			}
		}
		cout<<" ";
		for(i=0;str[i]!=' ';i++)
			cout<<str[i];
	}
  	if(l==0)
	{
		for(i=0;i<=j;i++)
			cout<<str[i];
	}

	return 0;
}
void daopai(char *pt)
{
	int i,s=0,m=0;
	char *index[100];
	for(i=0;*(pt+i)!='\0';i++)
	{
		if((*(pt+i)!=' ')&&(s==0)) 
		{
			index[m]=pt+i;
			s=1;
		}
		else if(*(pt+i)==' ')
		{
			m=m+1;
			s=0;
		}
	}
	if(m!=0)
	{
		for(;*(index[m])!='\0';index[m]++)
		printf("%c",*(index[m]));
	printf(" ");
	for(i=(m-1);i>0;i--)
	{
		for(;*(index[i])!=' ';index[i]++)
			printf("%c",*(index[i]));
		printf(" ");
	}
	for(;*(index[0])!=' ';index[0]++)
		printf("%c",*(index[0]));
	}
	else
	{
		for(;*(index[0])!='\0';index[0]++)
			printf("%c",*(index[0]));
	}
}
int main()
{
	char str[100],*p=str;
	gets(p);
	daopai(p);
return 0;
}
void main()
{
  char a[100]={'\0'};
  int i,j,n,k,m;
  gets(a);
  for(i=0;i<100;i++)if(a[i]=='\0'){n=i-1;break;}
  for(i=n,j=n;i>=0;i--)
  {
    if(a[i]==' '&&a[i+1]!=' ')
    {
      for(k=i+1;k<j+1;k++)printf("%c",a[k]);
      printf(" ");
      m=i;
      for(;1;i--)if(a[i]!=' '){j=i;break;}
      i=m;
     }
    else if(i==0&&a[0]!=' ')for(k=i;k<=j;k++)printf("%c",a[k]);
  }
}
void main()
{
	int i,j=0,k1=0,k2,l;
	char a[102],b[50][20];
	gets(a);
	l=strlen(a);
	a[l]=' ';
	a[l+1]='\0';
	for(i=0;i<=l;i++)
	{
		if(a[i]==' ')
		{
			k2=0;
			for(;j<i;j++)
				b[k1][k2++]=a[j];
			j++;
			b[k1][k2++]='\0';
			k1++;
		}
	}
	for(i=k1-1;i>0;i--)
		printf("%s ",b[i]);
	printf("%s",b[0]);
}
void turn(char *a)
{
 char b[10][20],c[20]="";
 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," ");
  }
    strcat(a,b[0]);
    strcat(a,"\0");

}
main()
{
 char a[20];
 gets(a);
 turn(a);
 puts(a);
}
int main ()
{
	char str[100][100], input[101];
	int i, j, m=0, k=0, t=1;
	char *in, (*p)[100];
	in=input;
	for (i=0; (*(in++)=getchar())!='\n'; i++)
		m++;
	*(in-1)='\0';
	//puts (input); printf ("%d\n", m);
	in=input; p=str;
	//printf("%s",in);
	for (i=0; *(in+i)!='\0'; i++)
		if (*(in+i)==' ') t++;
	//printf ("%d\n", t);
	in=input;
	for (i=0; i<t; i++)
	{
		for (j=0; *in!='\0' && *(in++)!=' '; j++)
			*(*(p+i)+j)=*(in-1);
		*(*(p+i)+j)='\0';
		//printf("%s\n",p[i]);
		k++;
	}
	p=str;
	for (i=k-1; i>=0; i--)
	{
		if (i==0)
		printf ("%s", *(p+i));
		else printf ("%s ", *(p+i));
	}
	return 0;
}
int main()
{
    int ls,i,num,sk,lk,word;
	char kong[100][100],s1[100][100],s[100];
	gets(s);
	ls=strlen(s);
	sk=0;
	num=0;
	word=0;
	lk=0;
	for(i=0;i<ls;i++)
	{
		if(s[i]!=' ')
			s1[word][num++]=s[i];
		else{
			while(s[i]==' ')
			{
				kong[lk][sk++]=s[i];
				i++;
			}
			kong[lk][sk++]='\0';
			lk++;
			sk=0;
			s1[word][num]='\0';
				word++;
				num=0;
				i--;
		}

	}
	for(i=word;i>=0;i--)
	{
		printf("%s",s1[i]);
		if(i!=0)printf("%s",kong[i-1]);
	}


	return 0;



}
void turn(char *a)
{
    char b[10][20],c[20]="";
    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]);
            if(i!=0)
                strcat(a," ");
            if(i==0)
                strcat(a,"\0");
    }
}
main()
{
    char a[20];
    gets(a);
    turn(a);
    puts(a);
}
int main()
{
	char letter[101];
	int i=0;
	while(true)
	{
		letter[i]=getchar();
		if(letter[i]=='\n')//??????
			break;
		i++;
	}
	int m,n,j,z;
	z=i-1;//?????
	for(j=z;j>=0;j--)
	{
		if(letter[j]==' ')//?????
		{
			for(m=j+1;m<=z;m++)
				cout<<letter[m];//??????????
			cout<<" ";
			z=j-1;
		}
	}
	for(n=0;n<=z;n++)//???????
		cout<<letter[n];
		return 0;
}
int main()
{
	char str[100];
	int i,t,b[100],k=0,n,m=0;
	gets(str);
	n=strlen(str);
	for(i=0;i<n;i++)
		if(str[i]==' ') m=m+1;
		for(i=0;i<n;i++)
		
			if (str[i]==' ') 
			
				{ 
					t=i; 
					b[k]=t;
				    k++;
					
				}
			if(t>=n-1)
			{
				
                              for(i=0;i<n;i++)
		            printf("%c",str[i]);
			}
			else
			{
			for(i=b[m-1]+1;i<n;i++)
		printf("%c",str[i]);
		printf(" ");
		for(k=m-1;k>0;k--)
		{
			for(i=b[k-1]+1;i<=b[k];i++)
				printf("%c",str[i]); 
		}
			for(i=0;i<b[0];i++)
			printf("%c",str[i]);
			}
}
void main()
{
	char a[80][20],*p[80],**q,t;
	int i;
	for(i=0;i<80;i++)
		p[i]=a[i];
	for(q=p;;q++)
	{
		scanf("%s",*q);	
		t=getchar();
		if(t!=' ') break;
	}
	for(;q>p;q--)
		printf("%s ",*q);
	printf("%s",*q);
}
int main()
{
	char t,a[50][20];
	int n=0,i;
	t=getchar();
	while(t>15)
	{
		i=0;
		while(t>='A')
		{
			a[n][i]=t;
			t=getchar();
			i++;
		}
		t=getchar();
		n++;
	}
	for(int k=n-1;k>0;k--)
	{
		i=0;
		while(a[k][i]>='A')
		{
			cout<<a[k][i];
			i++;
		}
		cout<<' ';
	}
	i=0;
		while(a[0][i]>='A')
		{
			cout<<a[0][i];
			i++;
		}
	return 0;
}
int main()
{ char c;
int i,j;
int x;
char a[101]={0};
int b[101]={0};
int m=0;



cin.getline(a,101);
for(i=0;i<101;i++)
{
	if((a[i]!='\0')&&(a[i+1]=='\0'))
		x=i;
}
for(i=0;i<=x;i++)
{
	if(a[i]==' ')
	{
		b[m]=i;
		m++;
	}
}
b[m]=x+1;
for(i=m;i>0;i--)
	for(j=0;j<=100;j++)
	{
		if((j>b[i-1])&&(j<b[i]))
		{
			cout<<a[j];
			if(j==b[i]-1)
				cout<<" ";
		}



	}
	for(j=0;j<=100;j++)
	{
		if(j<b[0])
			cout<<a[j];
	}


	return 0;


}
void main()
{
	char s[101],a[100][20]={0};
	gets(s);
	int i,j=0,index=0,k=0;
	for(i=0;i<strlen(s);i++)
	{
		if(s[i]!=' ')
		{
			a[j][k]=s[i];
			k++;
		}
		else
		{
			a[j][k]='\0';
			j++;
			k=0;
		}
		
	}
	for(i=j;i>0;i--)
		printf("%s ",a[i]);
	printf("%s\n",a[0]);
}
void main()
{
	char str[9000],a[100][10]={'\0'};
	gets(str);
	int len,i,k,j;
	len=strlen(str);
	k=0;
	for(i=0;i<len;i++)
	{
		j=0;
		while(str[i]!=' '&&i<len)
		{
			a[k][j]=str[i];i++;j++;
		}
		k++;
	}

	for(i=k-1;i>0;i--)
		printf("%s ",a[i]);
	printf("%s",a[0]);
}
int main()
{

	char a,sen[100][100];
	int i=1,j=1,
		remi,//????
		out=0,
		remj[99];//?i?????

    while(cin.get(a) && a!='\n')//?????????
	  {if(a!=' ')
	    {sen[i][j]=a;j++;}//???i?????j???
	  else if(a==' ')
	    {remj[i]=j-1;j=0;i++;sen[i][j]=a;j++;}//??????????????i????j
	  }
	 remj[i]=j-1;//????????????
	 remi=i;	//remi?????
	
	 for(i=remi;i>=2;i--)
		 for(j=1;j<=remj[i];j++)
		 {cout<<sen[i][j];out++;//????????????????????
	      if(out==remj[i])//?????????????????????
		  {cout<<' ';out=0;}
	     }

	 for(j=1;j<=remj[1];j++)
		 cout<<sen[1][j];//?????????


	return 0;
}
int main()
{
	int i=0,j=0,n=0;
	char str[100001],s[1001][21];
	gets(str);
	while(str[i]!='\0')
	{
		while(str[i]!=' '&&str[i]!='\0')
		{
			s[n][j]=str[i];
			j++;
			i++;
		}
		s[n][j]='\0';
		n++;
		j=0;
		while(str[i]==' ')
		{
			s[n][j]=str[i];
			i++;
			j++;
		}
		s[n][j]='\0';
		n++;
		j=0;
	}
	for(i=n-1;i>=0;i--)
	{
		printf("%s",s[i]);
	}
	return 0;
}
void charReverse(char str[], int beg, int end);

int main()
{
    char str[100];
    gets(str);
    int i = 0, j = 0;
    for (; j <= (int)strlen(str); j++) {
        if(str[j] == ' ' || str[j] == '\0') {
             charReverse(str, i, j-1);
             i = j + 1;
        }
    }
    charReverse(str, 0, strlen(str)-1);
    printf("%s\n", str);
    return 0;
}

void charReverse(char str[], int beg, int end)
{
    int i;
    for(i = 0; i < (end - beg + 1) / 2;i++) {
         char ch = str[beg + i];
         str[beg + i] = str[end - i];
         str[end - i] = ch;
    }
}
int main()
{
	int a[50]={0};
	char str[100],de[50][100];
	cin.getline(str,100);
	int i,k,j=0;
	for(i=0;str[i]!='\0';i++)
	{
	  if(str[i]!=' ')
	  {
      de[j][a[j]]=str[i];
	  a[j]++;
	  }
	  else
	  {
		  j++;
		  
	  }
	}
	for(i=j;i>0;i--)
	{
		for(k=0;k<a[i];k++)
		{
			cout << de[i][k];
		}
		cout <<" ";
	}
   for(k=0;k<a[0];k++)
		{
			cout << de[0][k];
		}
	return 0;
	}
void main()
{
	char str[101]={'\0'},c[100][100]={{'\0'}},b[100][100]={{'\0'}};
	int j,t,l,i,m=0;
    gets(str);
	l=strlen(str);
	str[l]=' ';
	str[l+1]=' ';
	for(i=0,j=0;;j++)
	{
		if(str[j] == '\0') break;
		if(str[j]==' ') 
		{
			t=j;
			strncpy(c[i],str,t);
			i++;
			for(j=t+1;;j++) {str[j-t-1]=str[j];if(str[j] == '\0') break;}
		    m++;
			j=0;
		}
	}
	for(i=0;i<m;i++) strcpy(b[i],c[m-i-1]);
    for(i=0;i<m-1;i++) printf("%s ",b[i]);
	printf("%s\n",b[m-1]);
}
int main()
{
 char a[100][101];
 char c;
 int i=0;
 do{
  scanf("%s",a[i]);
  scanf("%c",&c);
  i++;}while(c!='\n');
 for(i=i-1;i>0;i--)
 cout<<a[i]<<" ";
 cout<<a[0]<<endl;
return 0;
}
main()
{
      char s1[101],s2[101];
      int i,j,p,k;
      for(j=0;j<101;j++) s1[j]='\0';
      gets(s1);
      k=strlen(s1)-1;
      for(i=strlen(s1)-1;i>=0;i--)
      {
            if(s1[i]==' ')
            {
                  for(j=0;j<101;j++) s2[j]='\0';
                  for(p=0;p<k-i;p++) s2[p]=s1[i+1+p];
                  printf("%s ",s2);
                  k=i-1;
            }
            else if(i==0)
            { 
                  for(j=0;j<101;j++) s2[j]='\0';
                  for(p=0;p<=k;p++) s2[p]=s1[p];
                  printf("%s",s2);
            }
      }
}
main()
{
      char a[100][102];
      int i,j,sum=0,n,flag=0;
      for(i=0;i<100;i++)
      for(j=0;j<102;j++)
      a[i][j]='\0';
      
      char b[102];
      gets(b);
      for(i=0;;i++)
      {
      for(j=0;;j++)
      {
      if(b[sum+j]=='\0')
      {
      flag=1;
      break;
      }
      else if(b[sum+j]!=' ')
      {
      a[i][j]=b[sum+j];
      }
      else
      {
      sum=sum+j+1;
      break;
      }
      }
      if(flag==1)
      break;
      }
      n=i;
      for(i=n;i>=0;i--)
      {if(i==0)
      printf("%s",a[i]);
      else
      printf("%s ",a[i]);

      }
      }
int main(void)
{
	char str[100][100],c;
	int n,i,j;
	for(i=0;;i++)
	{
		scanf("%s",str[i]);
		if((c=getchar())=='\n')
			break;
	}
	for(;i>0;i--)
		printf("%s ",str[i]);
	printf("%s",str[0]);
}
int main()
{
    char a[150];int b[150],word=1,c=0;b[1]=0;
    gets(a);
    int l=strlen(a);
    for (int i=0;i<=l-1;i++)
     {if (a[i]==' '){word++;b[word]=i;}}
     b[word+1]=l;
     for (int i=word;i>=2;i--)
      {
       for (int j=b[i]+1;j<=b[i+1]-1;j++)cout<<a[j];
       cout<<' ';
      }
      for (int i=0;i<=b[2]-1;i++)cout<<a[i];
return 0;
}
void main()
{
     char a[110];
	 int i,k,len,m=0,b[100];
     gets(a);
     len=strlen(a);
	 for(i=0;i<len-1;i++)
	 {
		 if(a[i]==' ')
		 {	 b[m]=i;
		     m++;
		 }
	 }
	 for(k=m-1;k>=0;k--)
	 { for(i=b[k]+1;a[i]!=' '&&a[i]!='\0';i++)
			 printf("%c",a[i]);
	 printf(" ");
	 }
	 i=0;
	 while(a[i]!=' '&&a[i]!='\0')
	 { printf("%c",a[i]);
	   i++;
	 }
}
int main()
{
	char str[100];
	int num[100],i,j=0,k;
	gets(str);
	num[0]=0;
	for(i=0;str[i]!='\0';i++)
	{
		if(str[i]==' ' && str[i-i]!=' ')
			j++;
		else if(str[i]!=' ' && str[i-1]==' ')
			num[j]=i;
	}
	for(k=j;k>0;k--)
	{
		for(i=0;;i++)
		{
			if(str[num[k]+i]==' ' || str[num[k]+i]=='\0')
			{
				printf(" ");
				break;
			}
			else
				printf("%c",str[num[k]+i]);
		}	
	}
	for(i=0;;i++)
		{
			if(str[num[0]+i]==' ' || str[num[0]+i]=='\0')
			{
				printf("\n");
				break;
			}
			else
				printf("%c",str[num[0]+i]);
		}
	return 0;
}
void main()
{
	char a[10000],b[1000][1000];
	int m,j=1,i=0,k=0,x,y;
	gets(a);
	for(i=0;i<strlen(a);i++)
	   {
	   	 if(a[i]==' ')j++;
	   }
	i=0;
	for(m=0;m<j;m++)
	{
	   for(k=0;i<strlen(a);i++)
	   {
	   	 if(a[i]!=' ')
	   	   {
	   	   	 b[m][k]=a[i];
	   	   	 k++;
	   	   }
	   	 if(a[i]==' ')break;
	   }
	   i=i+1;
	}
	for(m=j-1;m>0;m--)
	{
		{
			for(x=0;b[m][x]!=0;x++)
		    printf("%c",b[m][x]);
		}
		printf(" ");
	}
	for(y=0;b[0][y]!=0;y++)
	 printf("%c",b[0][y]);
	
	
}
int main()
{
	char str[100];
	gets(str);
	char a[100][100];
	int i,j=1,k=0;
	for(i=0;i<strlen(str);i++)
	{
		a[j][k]=str[i];
		k=k+1;
		if((str[i+1]==' '&&str[i]!=' ')||(str[i+1]!=' '&&str[i]==' '))
		{
			a[j][k]='\0';
			j=j+1;
			k=0;
		}
	}
	for(i=j;i>=1;i--)
	{
		printf("%s",a[i]);
	}
	return 0;
}
int main()//???
{   int i=0;
char a[100][100];//??????????
for (;;)
{        
	char c[100];//???????
	cin>>c; //??????  
	for (int j=0;j<100;j++)
		a[i][j]=c[j];//??
	i++;    
	if (cin.get()=='\n')//????break
		break;
}
for (int j=i-1;j>0;j--)
	cout<<a[j]<<" ";//??
cout<<a[0];//??
return 0;
}
int main()
{
	char a[1][100]={'\0'};
	char b[100][100]={'\0'};
	cin.getline(a[0],100);//????
	int i,num,k,x=0,p=0;
	num=strlen(a[0]);
	a[0][num]='\n';
	for(i=0;i<num+1;i++)
	{   
		if(a[0][i]==' '||a[0][i]=='\n')
		{    
			for(k=x;k<i;k++)
			{
             b[p][k-x]=a[0][k];   
			}p++;x=i+1;
		}
	}
	int m;
	for(m=0;m<p-1;m++)
	{cout<<b[p-1-m]<<" ";
	}cout<<b[0];


    getchar();
	getchar();
	return 0;
}
void main()
{
	int l,m,k=1,i=0,q,a[1000];
	char p[1000];
	gets(p);
	l=strlen(p);
	for(m=0;m<l;m++)
	{
		if(p[m]==' ')
		{
			a[k]=m+1;
			k++;
		}
	}
	a[0]=0;
	a[k]=l+1;
	for(i=k-1;i>=1;i--)
	{
		for(q=a[i];q<a[i+1]-1;q++)
		{
			printf("%c",p[q]);
		}
		printf(" ");
	}
	{
		for(q=a[0];q<a[1]-1;q++)
		{
			printf("%c",p[q]);
		}
	}
}
int main()
{
char str[100],word[100][100];
int i=0,j=0;

gets(str);

for(int k=0;str[k]!='\0';k++)
{
	
	if(str[k]==' ')
	{ 
		word[i][j]='\0';
		i++;j=0;
		continue;
	}
	word[i][j]=str[k];
	j++;
}
word[i][j]='\0';
for(j=0;word[i][j]!='\0';j++)
	cout<<word[i][j];

for(int k=i-1;k>=0;k--)
{
	cout<<" ";
	for(j=0;word[k][j]!='\0';j++)
	cout<<word[k][j];
}
//cin>>str;
return 0;
}
void main()
{
	char sent[100];
	int n,i,j,k=0,m;
	gets(sent);
	n=strlen(sent);
	for(i=n-1;i>=0;i--)
	{	
		if(sent[i]==' ')
		{
			k++;m=i;
			for(j=i+1;sent[j]!=' '&&j<n;j++)
			{
				printf("%c",sent[j]);
			}
			printf(" ");
		}
	
	}	
	if(k==0)
		puts(sent);
	else
		for(i=0;i<m;i++)
			printf("%c",sent[i]);
	
}
char str[100];
void print(int n)
{
	int i;
	for(i=n;;i++)
	{
	    if(str[i]==' '||str[i]=='\0') break;
		else printf("%c",str[i]);
	}
}
main()
{
	int i,len;
	gets(str);
	len=strlen(str);
	for(i=len-1;i>=0;i--)
		if(str[i]==' ') {print(i+1);printf(" ");}
	print(0);
}
void main()
{
	char s[101],*string[50],*p=s;
	int c=0,i;
	gets(s);
	string[c++]=&s[0];
	for(i=0;*p!='\0';i++,p++)
		if(*p==' ')
		{
			*p='\0';
			string[c++]=p+1;
		}
	c--;
	for(;c>=0;c--)
	{
		printf("%s",string[c]);
		if(c!=0) printf(" ");
	}
}
void turn(char a[100])
{
	int i,j,k;
	char b[100][100];
	i=0;j=0;k=0;
	while(a[i]!='\0')
	{
		if(a[i]!=' ')
		{
			b[j][k]=a[i];
			k++;
		}
		if(a[i]==' ')
		{
			b[j][k]='\0';
			k=0;
			j++;
		}
		i++;
	}
	b[j][k]='\0';
	for(i=j;i>0;i--)
		printf("%s ",b[i]);
	printf("%s",b[i]);
}
void main()
{
	char a[100];
	gets(a);
	turn(a);
}
int main()
{
	char str1[100];
	int n,i,m;
	gets(str1);
	n=strlen(str1);
	for(i=n-1;i>=0;i--)
	{
		if(str1[i]==' ')
		{
			for(m=i+1;m<n;m++)
				printf("%c",str1[m]);
				n=i;
				printf(" ");
		}
	}
	for (m=0;m<n;m++)
	printf("%c",str1[m]);

	return 0;
}
int main()
{
	char b[50][50]={'\0'};
	memset(b,0,2500*sizeof(char));
	int i=0,j=0,count=0;
	char c = getchar();
	while('\n' != c)
	{
		if(' ' == c)
		{
			i++;
			j = 0;
		}
		else
		{
			b[i][j++] = c;
		}
		c = getchar();
	}
	//for(i=0;b[i-1][j-1]!='\n';i++)
	//{
	//	count++;
	//	for(j=0;(b[i][j-1]!=' ')&&(b[i][j-1]!='\n');j++)
	//	{
	//		b[i][j]=getchar();//????????????????????
	//	}
	//}
	count = i+1;
	for(i=count-1;i>=1;i--)
	{
		for(j=0;b[i][j] != '\0';j++)
		{
			//if(b[i][j]=='\n')
			//{
			//	cout<<" ";break;
			//}
			//else
			//{
			cout<<b[i][j];
			//if(b[i][j]==' ')
			//{ break;}
			//}

		}
		cout<<" ";
	}
	for(j=0;b[0][j]!='\0';j++)
		cout<<b[0][j];//????


	return 0;
}
int main()
{
	char a[101],b[51][51];  //????a?????b
	int i=0,j=0,p=0;
	int n=0;
	cin.getline(a,10000);
	for(i=0;a[i]!='\0';i++)   //?????????????????????
	{
		if(a[i]!=' ')
		{
			b[j][p]=a[i];
			p=p+1;
		}
		else               //?????????
		{
			b[j][p]=' ';
			j=j+1;
			p=0;
		}
	}
	n=j;
	b[j][p]=' ';
	for(j=n;j>=1;j--)         //????????
	{
		for(p=0;b[j][p]!=' ';p++)
		{
			cout<<b[j][p];
		}
		cout<<' ';
	}
	for(p=0;b[0][p]!=' ';p++) //???????????
		{
			cout<<b[0][p];
		}
	return 0;
}
int main()
{ 
  char c[200],k;
  int pla[200],s,e,i,l,j,t;
  gets(c);
  l=strlen(c);
  j=0;
  for(i=0;i<l;i++)
   {
    if(c[i]==' ')
	 {
	   j++;
	   pla[j]=i;
	 }
   }
  for(i=1;i<=j+1;i++)
   {
    if(i==1) s=0;
	else s=pla[i-1]+1;
	if(i==j+1) e=l-1;
	else e=pla[i]-1;
	for(t=0;s+t<e-t;t++)
      {
	   k=c[s+t];
	   c[s+t]=c[e-t];
	   c[e-t]=k;
	  }
    }
  for(i=l-1;i>=0;i--)
   printf("%c",c[i]);
  return 0;
}
int main()
{
 char s[300];
 char a[300][300];
 int i,k,b=0,j=0,w=0,p;
 gets(s);
 k=strlen(s);
 for(i=0;i<k;i++)if(s[i]==' ')b++;
 for(i=0;i<k;i++)
 {
  if(s[i]!=' ')
  {
   a[j][w]=s[i];
   w++;
  }
  else
  {
   a[j][w]='\0';
   w=0;
   j++;
  }
 }
 a[j][w]='\0';
 for(i=b;i>=1;i--)printf("%s ",a[i]);
 printf("%s",a[0]);
}
void main()
{
	int k,i,n=0,t;
	char *p,a[100];
	p=a;
    gets(p);

	

	for(i=0;i<99;i++)
	{ 
		if((*(p+i))!='\0')
	     n++;
		else 
			break;
	}

	for(k=n-1;k>=0;k--)
	{
		if(*(p+k)==' ')
	{
			for (t=k+1;t<n;t++)
			{printf("%c",*(p+t));}
             printf(" ");
		     n=k;
	}
	}
	for(t=0;t<n;t++)
	{printf("%c",*(p+t));}
		
}
int main()
{
	char c[100][100],v;
	int i;
	for(i=0;i<100;i++)
	{
		for(int j=0;j<100;j++)
		{
			v=getchar();
			if((v==' ')||(v=='\n'))
			break;
			else
			c[i][j]=v;
		}
		if(v=='\n')
		break;
	}
	for(int k=i;k>=0;k--)
	{
		if(k==i)
		cout<<c[k];
		else
		cout<<' '<<c[k];
	}
	return 0;
}
int main()
{
    int i=0,j=0,k,t=0,pan=0;
    char a[201][100],b[100];
    cin.getline(b,100,'\n');
    while(b[j]!='\0')
    {
        while (b[j]!=' ')
        {
            a[i][t]=b[j];
            j++;
            t++;
            if(b[j]=='\0')
            {
                pan=1;
                break;
            }
        }
        if(pan==1)
            break;
        i++;
        j++;
        t=0;
    }
    for(k=i;k>0;k--)
    {
        j=0;
        while (a[k][j]!='\0')
        {
            cout<<a[k][j];
            j++;
        }
        cout<<' ';
    }
    j=0;
    while(a[0][j]!='\0')
    {
        cout<<a[0][j];
        j++;
    }
}
main()
{
	int i=0;
	char a[50][40],b[50];
	while(scanf("%s",b)!=EOF)
	{
		strcpy(a[i],b);
		i++;
	}
	int j;
	printf("%s",a[i-1]);
	for(j=i-2;j>=0;j--)
		printf(" %s",a[j]);
}
void main()
{
	int i,j,k,p,q;//j???????????0????
	char s[100],a[100][100];//s[100]?????????a[100][100]????????
	gets(s);
 	for(i=0,j=0;s[i]!='\0';i++,j++)//??????????????
	{
		p=i;k=0;//k????????????while???
		while(s[i]!=' '&&s[i]!='\0')//????????????a[100][100]??
		{
			a[j][i-p]=s[i];i++;k=1;//k????1??????while???
		}
		if(k==1) {a[j][i-p]='\0';if(s[i]=='\0') i--;} //???????'\0'????????
		else j--; //??????????????????j?????
	}
	for(q=j-1;q>0;q--) //??????????????????
		printf("%s ",a[q]);
	printf("%s\n",a[0]);//?????????
}
void main()
{
	int i,m,n,q,s=0;
	char a[111],*p;
	gets(a);
	n=strlen(a);
	for(i=0;a[i]!='\0'&&a[i]!=' ';i++)
	    s=s+1;
	if(s==n) printf("%s",a);
	else
	{
    q=a+n;
	for(p=a+n;p>=a+s;p--)
	{
		if(*p==' ')
		{
			m=p;
			for(p=m+1;p<q;p++)
				printf("%c",*p);
			printf(" ");
			q=m;
			p=m;
		}
	}
	p=a;
	for(i=0;i<s;i++)
		printf("%c",*p++);
	}
}
void fun(char a[])
{
 char *p=a,t[100],s[100];
 int index;
 memset(s,0,100);
 while(*p)
 {
  if(!isalpha(*p)) *p=' ';
  p++;
 }
 p=a;
 while(strstr(p," ")!=NULL)
 {
  memset(t,0,100);
  index=strstr(p," ")-p;
  if(index>0)
  {
   strncpy(t,p,index);
   strcat(t," ");
   strcat(t,s);
   strcpy(s,t); 
  }
  else
  {
   strcpy(t," ");
   strcat(t,s);
   strcpy(s,t);
  }
  p+=index+1;
 }
 if(*p)
 {
  strcpy(t,p);
  strcat(t," ");
  strcat(t,s);
  strcpy(s,t);
 }
 strcpy(a,s);
}
void main()
{
 char s[100];int i;
 gets(s);
 fun(s);
 for(i=0;i<strlen(s)-1;i++)
 {
	 printf("%c",s[i]);
 }
}
void main()
{
	char a[100]={' '};
	int b[100]={0};
	int i,j=0,k,p,length,num=0,x;
	
	gets(a);
	length=strlen(a);
	
	for(i=0;i<length;i++)
	{
		if(a[i]==' ')
		{
			b[j]=i;
			num++;
			j++;
		}
	}

	if(num==0)
		b[0]=length;
	
	x=num;


	while(num!=0)
	{
	for(p=x-1;p>=0;p--)
	{
		for(k=b[p]+1;(a[k]!=' ')&&(a[k]!='\0');k++)
		{
			printf("%c",a[k]);
		}
	
			if(num!=0)
			{
				printf(" ");
			}
			num--;
	}
	}
			
	k=0;
	while(k<b[0])
	{
		printf("%c",a[k]);
		k++;
	}

}
int main()
{
	char str[100];
	int i=0,j=1,total=1,num[100],end[100],start[100],k;
	gets(str);
	start[1]=1;
	for(i=0;i<strlen(str);i++)
    {if(str[i]==' ')
	{num[j]=i;end[j]=i;start[j+1]=i+2;j++;total++;}}
	end[total]=strlen(str);
	
	for(j=total;j>1;j--)
	{for(k=start[j]-1;k<=end[j]-1;k++)
	{if(k!=end[j]-1)
		printf("%c",str[k]);
		else
			printf("%c ",str[k]);}}
			if(j=1)
				for(k=0;k<end[1];k++)
				printf("%c",str[k]);
	return 0;	
}
void main()
{
	char c[101], s[101],temp;
	int i,j,k,t,y;
	gets(c);
	for(i=0;;i++)
	{
		if(c[i]=='\0')
			break;
	}
	for(j=0;j<i;j++)
		s[j]=c[i-1-j];
	s[j]='\0';
	//printf("%s\n",s);
	j=-1;k=-1;
	for(i=0;;i++)
	{
		if(s[i]==' '||s[i]=='\0')
		{
			j=k;
			k=i;
			//printf("%d %d\n",j,k);
			for(t=j+1,y=k-1;y>t;t++,y--)
			{
				//printf("s[%d]='%c',s[%d]='%c'\n",t,s[t],y,s[y]);
				temp=s[y];
				s[y]=s[t];
				s[t]=temp;
			}
		}
		if(s[i]=='\0')
			break;
	}
	printf("%s\n",s);
}
void main()
{
	char a[100],*p;
	int n,m=0,i,j;
	gets(a);
	p=a;
	n=strlen(a);
	for(i=n-1;i>=0;i--)
	{
		if(*(p+i)!=' ') m=m+1;
		if(*(p+i)==' ')
		{
			for(j=i+1;j<i+m+1;j++)
				printf("%c",*(p+j));
			printf(" ");
			m=0;
		}
	}
	for(i=0;*(p+i)!=' '&& *(p+i)!='\0';i++)
		printf("%c",*(p+i));
}
int main()
{
    char str[101];
    int n,i=99,j;
    gets(str);
    while(i>=0)
    {
        n=strlen(str);
        if(str[i]==' ')
        {
           j=i+1;
           while(j<n)
           {printf("%c",str[j]);
            j=j+1;}
          printf(" ");
          str[i]='\0';
         }
        if(i==0)
        puts(str);
        i=i-1;
     }
     return 0;
}
void main()
{
	char a[100];
	int s,l=1,k,j,h,i;
	gets(a);
	s=strlen(a);
	j=s;
	for(k=0;k<=s;k++)
	{
		if(a[k]==' ')
			l++;
	}
	if(l==1)printf("%s",a);
	else
	{
	for(i=1;i<=l-1;i++)
	{  
		k=j-1;
		while(a[k]!=' ')
			k--;
		//printf("%d",k);
		for(h=k+1;h<=j-1;h++)
			printf("%c",a[h]);
		printf(" ");
		j=k;
	}
	i=0;
	while(a[i]!=' ')
	{
		printf("%c",a[i]);
		i++;
	}
	}
}
void main()
{
	char a[100],s[100][100],string[100];
	int i,j,m,word,k,n;
	gets(a);
	n=strlen(a);
	for(i=n;i<100;i++)
	a[i]='\0';
	m=1;
	for(i=0;a[i]!='\0';i++)                          /*??a????m*/
	{
		if(a[i]==' ')
			word=0;
		else if(word==0)
		{
			word=1;
			m++;
		}
	}
		j=0;
		i=0;
		k=0;     
		while(a[i]!='\0')                                        /*?a??????string*/
		{
			while(a[i]!=' ')
		{
			string[j]=a[i];
			i++;
			j++;
			if(a[i]=='\0')
				break;
		}
		string[j]='\0';
		strcpy(s[k],string);                     /*?string?????s[k]*/
			k++;
			j=0;i++;
	}
	for(k=m-1;k>0;k--)
			printf("%s ",s[k]); 
	       printf("%s",s[0]);                                              /*????s[k]*/
	
}