semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
{
	char a[100][100],b[1000];
	int n,i,k=0,j,sum=0,word=0;
	char c;
	gets(b);
	for(i=0;i<100;i++)
	{
		for(j=0;j<100;j++)
		{
			a[i][j]=b[k];
			k++;
			if(a[i][j]==' ')
			{
				a[i][j]='\0';
				break;
			}
		}
	}

	for(i=0;(c=b[i])!='\0';i++)
	{
		if(c==' ') word=0;
		else if(word==0)
		{
			word=1;
			sum++;
		}
	}
	n=strlen(a[sum-1]);
	a[sum-1][n]='\0';
	for(i=0;i<sum;i++)
	{
		printf("%s",a[sum-1-i]);
		if(sum-1-i!=0)
			printf(" ");
	}
}
int main()
{
	char yw[150]={0};
	cin.getline(yw,100,'\n');
	int i,j;
	i=strlen(yw);
	int s=i-1;
	for(i;i>=0;i--)
	{
		if(yw[i]==' ')
		{
			for(j=i+1;j<=s;j++)
			{
				cout<<yw[j];
			}
			cout<<' ';
			s=i-1;
		}//???????????????????? 
		if(i==0)
		{
			for(j=0;j<=s;j++)
			cout<<yw[j];
		}
		//?????????? 
	}

	return 0;
}
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]);
}
void main()
{
	char string[100];
	int i,j,num=0,word=0;
	int a[100];//???????????????string????
	gets(string);
	for(i=0,j=0;string[i]!='\0';i++)
	{
		if(string[i]==' ')
		{
			word=0;
		    a[j]=i;
			j++;
		}
		else if(word==0)
		{
			word=1;
			num++;
		}
	}
	if(num>1)
	{
		for(i=a[j-1]+1;string[i]!='\0';i++)
		printf("%c",string[i]);
	    while(j>=2)
		{
		   for(i=a[j-2];i<a[j-1];i++)
		   printf("%c",string[i]);
		   j--;
		}
		printf(" ");
	    for(i=0;i<a[0];i++)
		printf("%c",string[i]);
	}
	else
		puts(string);
}
int main()
{
	char a[100],b[100][100];
	int n=0,m=0,k,i;
	gets(a);
	scanf("\n");
	for(i=0;i<100;i++)
	{
		if(a[i]=='\0')break;
		if((a[i]!=' ')&&(a[i]!='\0'))
		{
			b[m][n]=a[i];
			n++;
			if(a[i+1]==' '||a[i+1]=='\0'){m++;n=0;}
		}
	}
	printf("%s",b[m-1]);
	for(i=m-2;i>=0;i--)printf(" %s",b[i]);

}
int main()
{
    char s[100], temp;

    gets(s);

    for (int i = 0, j = strlen(s) - 1; i < j; i++, j--) {
        temp = s[i];
        s[i] = s[j];
        s[j] = temp;
    }

    int low = 0, high = 0;
    for (int i = 0; i <= strlen(s); i++) {
        if (s[i] == ' ' || s[i] == '\0') {
            low = high; 
            high = i - 1;

            for (; low < high; low++, high--) {
                temp = s[low];
                s[low] = s[high];
                s[high] = temp;
            }
            high = i + 1;
        }
    }
    cout << s << endl;
    return 0;
}
void main()
{
	char c[100][100];
	int i=0,t;
	while(scanf("%s",c[i])!=EOF)
    {
		c[i];
	    i++;
	}
	t=i-1;
	for(i=t;i>=0;i--)
		if(i!=0)
		printf("%s ",c[i]);
		else printf("%s",c[0]);
}
int turn(char *a)
{
    int i=0,j,k,n=0;
    char *p,*q;
    for (p=a;*p!='\0';p++)
        n++;
    for (p=a+n-1;p>=a;p--)
    {
        if (*p!=' ')
            i++;
        else
        {
            for (q=p+1;q<=p+i;q++)
                printf("%c",*q);
            printf(" ");
            i=0;
        }
        if (p==a)
            for (q=p;q<p+i;q++)
                printf("%c",*q);
    }
    
}

int main()
{
    char a[100];
    gets(a);
    turn(a);
}
int main()
{   char str[10000],a[1000][1000];
    cin.getline(str,10000);
    int n,i,k=0,l=0,s;
    n=strlen(str);
    for(i=0;i<n;i++)
    {
    	if(str[i]==' ')
    	{
    		k++;
    		l=0;
    	}
    	else{
    		a[k][l]=str[i];
    		l++;
    	}
    }
    for(s=k;s>0;s--)
    	{
    		cout<<a[s]<<" ";
    	}
   cout<<a[0]<<endl;
    return 0;
}
int main()
{
    char a[100][101],temp[101];
    int c=0;
    while(scanf("%s",a[c])!=EOF)
    c++;
    for(int i=c-1;i>0;i--)
printf("%s ",a[i]);
printf("%s",a[0]);
}
void main()
{
	char ju[101]={0},c[100][12]={0};
	int i=0,j=0,k,l;
	gets(ju);
	l=strlen(ju);
	while(i<l)
	{
		k=0;
		while(ju[i]!=' '&&i<l) 
		{
			c[j][k]=ju[i];
			i=i+1;
			k++;
		}
		c[j][k]='\0';
		j=j+1;
		i=i+1;
	}
	for(i=j-1;i>0;i--) printf("%s ",c[i]);
	printf("%s",c[0]);
}
void main()
{   int i,len,j=0,n;
    char p[199],q[100];
    gets(p);
    len=strlen(p);
    for(i=1;i<=len;i++)
{   if(p[len-i]!=' '&&(i!=len)) q[j]=p[len-i],j++;
     else if(i!=len)
{   for(n=0;n<j;n++)
    printf("%c",q[j-1-n]),q[j-1-n]=0;
    j=0; printf(" ");
}   else {q[j]=p[len-i],j++;
    for(n=0;n<j;n++)
    printf("%c",q[j-1-n]),q[j-1-n]=0;
}   
}   }
int main()
{char str[101];
int i,j,temp,count=1;
cin.getline(str,101);
for(i=strlen(str);i>=0;i--)
	{
	if((str[i]==' ')&&(count!=1)){for(j=i+1;j<temp;j++)cout<<str[j];
    cout<<" ";
	temp=i;}
	if((str[i]==' ')&&(count==1)){temp=strlen(str);
	                              for(j=i+1;j<temp;j++)cout<<str[j];cout<<" ";//??????????????
	                                count=2;temp=i; }
	}
for(i=0;i<strlen(str);i++){cout<<str[i];if(str[i+1]==' ')break;}//????????????


	return 0;
}
void main()
{
char a[100],*p=a,*t=a;
int n;
gets(a);
n=strlen(a);
    for(p=p+n-1;p>=a;)
       {
        if((*p)==' ')
             { for(t=p+1;(*t)!='\0';t++)
               printf("%c",*t);
               printf(" ");
               *p='\0';
                p--;}
        else p--;}
p=a;
printf("%s",p);
}
void main()
{char a[101],t;int n,i,k,m,r=0;
gets(a);
n=strlen(a);
for(i=n-1;i>=0;i--)
if(a[i]==' ') r++;
if(r==0) 
{for(i=0;i<n;i++)
	printf("%c",a[i]);
}
else
{
for(i=n-1;i>=0;i--)
{if(a[i]==' ') {k=i;break;}}
for(i=k+1;i<n;i++)
printf("%c",a[i]);
m=k;
    for(i=m-1;i>=0;i--)
	{ if(a[i]==' ')
	{k=i;
	      for(i=k;i<m;i++)
               printf("%c",a[i]);
		  }
	m=k;
	}
	printf(" ");
	for(i=0;i<m;i++)
	printf("%c",a[i]);
}
}
void main()
{
	char str[100],*pstr,*x;
	char a[100],*pa;
	int n;
	gets(str);
	n=strlen(str);
	pstr=str+n-1;
	pa=a;
	for(;pstr>=str;pstr--)
	{
		if(*pstr==' ')
		{	
			x=pstr;
			pstr++;
			for(;*pstr!=' '&&*pstr!='\0';pstr++)
			{
				*pa=*pstr;
				pa++;
			}
			*pa=' ';
			pa++;
			pstr=x-1;
		}
	}
	pstr=str;
	for(;*pstr!=' '&&*pstr!='\0';pstr++)
	{
		*pa=*pstr;
		pa++;
	}
	for(pa=a;pa<a+n;pa++)
		printf("%c",*pa);
}
void main()
{int i,t=0,m,n,a=0;
	char str[100];
	gets(str);
for(i=99;i>=0;i--)
{ if(str[i]=='\0')
{    t=1;
   m=i-1;
   continue;
}
 if(t==1)
 { 
    if(str[i]==' ')
	{a=1;
		for(n=i+1;n<=m;n++)
	printf("%c",str[n]);
    printf(" ");
	m=i-1;
	}
    if(i==0&&a==1)
	for(n=0;n<=m;n++)
		printf("%c",str[n]);

	}
 
}
if(a==0)
for(n=0;n<=m;n++)
 printf("%c",str[n]);
printf("\n");
}
void main()
{
	int str[105][105],i=0,j;
	while(scanf("%s",str[i])!=EOF)
	{
		str[i];
	   i++;
	}
	for(j=i-1;j>=0;j--)
	{
		if(j!=0) printf("%s ",str[j]);
		else printf("%s",str[j]);
	}
}
int main(void)
{
		char c,a[101][101];
	int i=1,j=0;
	while(1)
	{
		cin.get(c);
		if(c!=32&&c!=10)
		{
			a[i][j]=c;
			j++;
		}
		else 
		{
			a[i][j]='\0';
			if(c==32)
			{
				i++;
				j=0;
			}
			else break;
		}
	}
	for(j=i;j>1;j--) cout<<a[j]<<" ";
	cout<<a[1];
}
int main()
{char a[100][100];
int i=0;
while(scanf("%s",a[i])!=EOF)
{i++;
}
i--;
cout<<a[i];
i--;

for(;i>=0;i--)
cout<<" "<<a[i];
return 0;
}
/*??
???????????(????????)?????????????????????????
????
?????????????????100?
????
?????????????
????
I am a student
????
student a am I
 */
int main()
{
	int i,j,k=0,b[100],x=0,y=0,z;
	char a[101][101],s[101];
	cin.getline(s,101,'\n');
	for(i=1;i<=101;i++)
	{
		for(j=1;j<101;j++)
		{
			if(s[k]==' '||s[k]=='\0'||s[k]=='\n')
			{
				b[i]=x;
				x=0;
				break;
			}
			else
			{
				x++;
				a[i][j]=s[k];
				k++;
			}
		}
		y++;
		if(s[k]=='\0'||s[k]=='\n')
		{
			break;
		}
		k++;
	}
	for(i=y;i>=1;i--)
	{
		for(j=1;j<=b[i];j++)
		{
			cout<<a[i][j];
		}
		if(i!=1)
			cout<<" ";
	}
	return 0;
}
void main()
{char  s[100];
char a[100][30];
int l,i,j=0,k=0;
gets(s);
l=strlen(s);
for(i=0;i<l;i++)
{
	if(s[i]!=' ') {a[j][k]=s[i];k++;} 
	if(s[i]==' ') {j++;k=0;}
}
printf("%s",a[j]);
for(i=j-1;i>=0;i--)
printf(" %s",a[i]);
}
void main()
{
	char a[20][20],temp[10];
	int n=0,i,j;
	while(scanf("%s",a[n])!=EOF)n++;
	i=0;j=n-1;
	do
	{strcpy(temp,a[i]);
	strcpy(a[i],a[j]);
	strcpy(a[j],temp);
	i++;j--;}
	while(i<=j);
	printf("%s",a[0]);
	for(i=1;i<n;i++)
		printf(" %s",a[i]);
}
void main()
{int i,j,k;
char ch[100];
gets(ch);
for(i=0;;i++)
{if(ch[i]=='\0') break;}
for(i=i-1,j=0;i>=0;i--)
{if(ch[i]==' ') {for(k=i+1;k<=i+j;k++) printf("%c",ch[k]);printf("%c",ch[i]);j=0;}
else if(i==0)  {for(k=i;k<=i+j;k++) printf("%c",ch[k]);break;}
else j++;}
}
int main()
{int i=0;
int k=0;
    char a[100][100];
while(cin.getline(a[i],101,' '))
{i++;
}
for(k=0;k<100;k++)
{if(a[i-1][k]=='\0')
a[i-1][k-1]='\0';}   
int j=0;
for(j=0;j<i-1;j++)    
{cout<<a[i-j-1]<<' ';
                    }
                    cout<<a[0];    
 return 0;                   
    }
int main()
{
	char str[100];
	char array[100][100];
    int i,j=0,k;
	gets(str);
    for(i=0;str[i]!='\0';i++)
	{
		for(k=0;str[j]!=' '&&str[j]!='\0';j++)
		{
			array[i][k]=str[j];
			k++;
		}
		if(i==0)
		    array[i][k]='\0';
		else
		{
			array[i][k]=' ';
			array[i][k+1]='\0';
		}
		if(str[j]=='\0')
			break;
		j++;
	}
	for(;i>=0;i--)
	{
		for(k=0;;k++)
		{
			if(array[i][k]=='\0')
				break;
			else
			{
				putchar(array[i][k]);
			}
		}
   	}
}
void main()
{
	char s[200];
	int i,n,j;
	gets(s);
	n=strlen(s);
	char *p=s;
        for(i=n-1;i>=0;i--)
			*(p+i+1)=*(p+i);
		*(p+0)=*(p+n+1)=' ';/*why????*/
		for(i=n;i>=0;i--)
		{
			if(*(p+i)==' ')
			{
				for(j=i+1;*(p+j)!=' ';j++)
					printf("%c",*(p+j));
			    if(i!=0) printf(" ");
			}
		}
}
void main()
{
	char *s,*p,*r;
	s=(char *)malloc(100*sizeof(char));
	gets(s);
	p=s+strlen(s)-1;
	for (;p>=s;p--)
	{
		if (*p==' ')
		{
			r=p+1;
			printf("%s ",r);
			*p='\0';
		}
		if (p==s) printf("%s",p);
	}
}
int main ()
{
	char a[100][105];
	int i=0;
	while (1)
	{
		cin>>a[i];		//?????????????????
		i++;			
		if (cin.get()=='\n')
		break;			//?????????
	}
	for (int j=i-1;j>0;j--)	//??????
		cout<<a[j]<<" ";
	cout<<a[0];
	return 0;
}
void main()
{
	char str1[100][100],str[100];
	int n,a=0,b=0,c,d,i;
	gets(str);
	n=strlen(str);
	for(i=0;i<n;i++)
	{
		if(str[i]!=' ')
        {str1[a][b]=str[i];b++;}
		if(str[i]==' ')
		{str1[a][b]='\0';a++;b=0;}
	}
	str1[a][b]='\0';
    for(d=a;d>=1;d--)
	{
		for(i=0;;i++)
		{
			if(str1[d][i]!='\0')
				printf("%c",str1[d][i]);
			if(str1[d][i]=='\0')
				break;
		}
		printf(" ");
	}
	for(i=0;;i++)
	{
		if(str1[0][i]!='\0')
			printf("%c",str1[0][i]);
		if(str1[0][i]=='\0')
			break;
	}
}
main()
{
      char a[1000];
      int b[1000],num=0,i,j,k,check=0;
      b[0]=0;
      gets(a);
      for(i=0;a[i]!='\0';i++)
      {
      if(a[i]==' ')
      check++;
      }
      if(check==0)
      puts(a);
      else{
      for(j=1;j<=check;j++)
      {
      for(i=b[j-1]+1;a[i]!='\0';)
      {
      if(a[i]==' ')
      {b[j]=i;
      break;}
      else i++;
      }
    
      }
      
     b[check+1]=1000;
      for(j=check;j>0;j--)
      {
      for(i=b[j]+1;i<b[j+1]&&a[i]!='\0';i++)
      printf("%c",a[i]);
      printf(" ");
      }
      for(i=0;a[i]!=' ';i++)
      printf("%c",a[i]);
      }
      getchar();
      getchar();
}
void main()
{
	char a[100];
	int l,j,i,m=0;
	gets(a);
	char *p=a;
	l=strlen(a);
	for(p=&a[l-1];p>=&a[0];p--)
	{
		if(*p==' ')
		{
			*p='\0';
			printf("%s ",p+1);
		}
	}
	p=a;
	printf("%s",p);
}
void main()
{
char str[100];
int i,j,a;
gets(str);
a=strlen(str); 
for(i=strlen(str)-1;i>=0;i--)
   {
	if(str[i]==' ')
	{for(j=i+1;j<a;j++)
	 printf("%c",str[j]);
	 printf(" ");
	 a=i;
	}
   }
for(i=0;i<strlen(str);i++)
if(str[i]==' ')break;
for(j=0;j<i;j++)
printf("%c",str[j]);
}
void main()
{
	char a[100];
	int b[100],i,n,m=0,j;
	gets(a);
	n=strlen(a);
	b[0]=0;
	for(i=0;i<=n;i++)
	{
		if(a[i]==' ')
		{
			m++;
			b[m]=i;
		}
	}
if(m==0) puts(a);
else
{
	for(i=b[m]+1;i<=n-1;i++)
	{
		printf("%c",a[i]);
	}
	printf(" ");
	for(i=m-1;i>=1;i--)
	{
		for(j=b[i]+1;j<=b[i+1];j++)
		{
			printf("%c",a[j]);
		}
	}
	for(i=0;i<=b[1]-1;i++)
	{
		printf("%c",a[i]);
	}
	printf("\n");
}
}
swap(char *p,int n)
{
	char *q,*a;
    q=p-n+1;
	for(;p>=q;p--)
	{
		if((*p)==' ')
		{   
		   a=p;
		   if(a!=q)
		   {
			   for(p=p+1;*p!='\0';p++)
			   {
				  printf("%c",*p);
				  if(*(p+1)=='\0') 
				  {
					  printf(" ");
					  break;
				  }
				  else if((*p)==' ') break;
			   }
		       p=a-1;
		   }
		}
	}
     p=q;
	 for(;;p++)
	 { 
	   if((*p)==' '||*p=='\0') break;
       else printf("%c",*p); 
	 }
		return 0;
}
int main()
{
	char *p,str[1000];
	int len;
	gets(str);
	len=strlen(str);
	p=str+len-1;
	swap(p,len);
}
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]<50) break;
    d[i]+=1;}
    if(c[i][j]=='\n') break;
    a+=1;
 }
 for(j=0;j<d[a];j++) putchar(c[a][j]);
 for(i=a-1;i>=0;i--)
 {printf(" ");
 for(j=0;j<d[i];j++)
		putchar(c[i][j]);
 }
}
void main()
{ char str[101];
int num[100]={0};
gets(str);
 int i,j,n=0,m;
 for(i=0;str[i]!='\0';i++)
 {if(str[i]==32) n++;}
 if(n==0) puts(str);
 else {n=strlen(str);
		for(i=n-1;i>=0;i--)
		{if(str[i]==32) 
			{   m=i; 
				for(j=i+1;str[j]!=32&&str[j]!='\0';j++)
				{printf("%c",str[j]);}
				printf(" ");
			}
		}
	for(i=0;str[i]!=32;i++)
	{printf("%c",str[i]);}
 }
 }
int main()
{
    char string1[100],string2[100];
    char str[100][100];
    int i=0,j=0,k=0;
    char c;
    gets(string1);
    for(i=0;(c=string1[i])!='\0';i++)
    {
           if(c!=' ')
         {
            str[j][k]=string1[i];
            k++;
         }
         else if(c==' ')
         {
            j++;
            k=0;
         }

    }
    strcpy(string2,"");
    for(i=j;i>0;i--)
    {
        strcat(string2,str[i]);
        strcat(string2, " ");
    }
    strcat(string2,str[0]);
    printf("%s",string2);
}
void main()
{
	int i,j,t,n=0,m=0,k=0;char a[100],b[100][100];
	gets(a);
	t=strlen(a);	
	for(i=0;i<100;i++)
		for(j=0;j<100;j++)
			b[i][j]=0;

    for(i=0;i<t;i++)
	{
		if((a[i]>=65&&a[i]<=90)||(a[i]>=97&&a[i]<=122))
		{
			j=k;
			b[j][n]=a[i];
			n++;
			m=1;
		}
		else if(m==1)
		{
			k++;
			b[j][n]=0;
			n=0;
			m=0; 
		}
	}
    printf("%s",b[j]);
	for(i=j-1;i>=0;i--)
    printf(" %s",b[i]);
}
void main()
{
	char a[1000];
	int i,m=0,j;
	gets(a);
	for(i=0;a[i]!='\0';i++)
		m++;
	for(i=m-1;i>=0;i--)
	{
		if(a[i]==' ')
		{
			for(j=i+1;a[j]!=' '&&a[j]!='\0';j++)
			printf("%c",a[j]);
			printf(" ");
		}
	}
	for(i=0;a[i]!=' '&&a[i]!='\0';i++)
		printf("%c",a[i]);
}
int main()
{
	char *str,*p;
	int n,m=0,i,j;//?m??????????//
	str=(char*)malloc(100*sizeof(char));
	p=(char*)malloc(100*sizeof(char));
	gets(str);
	n=strlen(str);
	for(i=n-1;i>=0;i--)
	{
		if(*(str+i)!=' ')
			m++;
		else if(*(str+i)==' ')
		{
			for(j=1;j<=m;j++)
			{
				printf("%c",*(str+i+j));
			}
			printf(" ");
			m=0;
		}
		if(i==0)
		{
			for(j=0;j<m;j++)
			{
				printf("%c",*(str+j));
			}
		}
	}
	return 0;
}
void main()
{
	char a[100],b[100][20],c;
	int n,i,j=0,k=0,w;
	gets(a);
	n=strlen(a);
	a[n]=' ';
    for(i=0;i<=n;i++)
	{
		if(a[i]!=' ')
		{
			b[j][k]=a[i];
			k++;
		}
		else
		{
			b[j][k]=a[i];
			j++;
			k=0;
		}
	}
	w=j-1;
	for(i=w;i>0;i--)
	{
		for(j=0;(c=b[i][j])!=' ';j++)
		{
			printf("%c",b[i][j]);
		}
		printf(" ");
	}
	for(j=0;(c=b[i][j])!=' ';j++)
		printf("%c",b[0][j]);
}
int main()
{
	int i,j,a[20]={0};
	char c[20][40],d;
	for(i=0;;i++)
	{
		for(j=0;;j++)
		{
			d=getchar();
			if(d!=' '&&d!='\n')c[i][j]=d;
			else break;
			a[i]++;
		}
		if(d=='\n')break;
	}
	for(;i>=1;i--)
	{
		for(j=0;j<=a[i]-1;j++)
		{
			printf("%c",c[i][j]);
		}
        printf(" ");
	}
    for(j=0;j<=a[i]-1;j++)
	{
		printf("%c",c[0][j]);
	}
    return 0;
}
int main()
{
	char str[101],*p,inversed[101],*q,*r;
	int i,l;
	gets(str);
	l=strlen(str);
	r=inversed;
	for(p=str+l-1,q=p+1;p>=str;p--)
	{
		if(*p==' '&&p!=str)
		{
			for(i=1;p+i<q;i++,r++)*r=*(p+i);
			*r=' ',r=r+1;
			q=p;
		}
		if(p==str)
		{
			for(i=0;p+i<q;i++,r++)*r=*(p+i);
			*r='\0';
		}
	}
	r=inversed;
	printf("%s",r);
}
int main()
{
    char word[100],b[100][100];
   int i=0,j=0,k=0;
   cin.getline(word,100);
   while (word[i]!='\0')   
   {
	   if(word[i]!=' ')
	   {b[j][k]=word[i];k=k+1;}
	   else {b[j][k]='\0';j=j+1;k=0;}
	   i=i+1;
   }
   b[j][k]='\0';
   for(i=j;i>0;i--)
      cout<<b[i]<<" ";
      cout<<b[0]<<endl;
   return 0;
}
void main()
{
	char a[100][100];char (*ipa)[100]=a;
	int i; char c='\n';
	for(i=0;;i++)
	{
		scanf("%s",*ipa++);
		if(c==getchar()) 
			break;
	}
	ipa--;
	for(;i>=1;i--)
	{
		printf("%s ",*ipa--);
	}
	printf("%s",*ipa);

}
/*
 *????HW6_12.cpp
 *??????1100019007?
 *???2012-11-08
 *???????
 */ 
char words[110][110];//??? 
int main()
{
    int i;
    int n;
    char c;
    i=0;
    while(cin>>words[i])
    {
        i++;
        c=cin.get();
        if(c=='\n')break;
    }//????(??????)
    n=i;//????
    for(i=n-1;i>=0;i--)
    { 
       cout<<words[i];//????
       if(i)cout<<' ';
    }
    cout<<endl;
    return 0;//????
}
void main()
{
	char *a;
	int i,j,k,m,n,t;
	a=(char *)malloc(1000*sizeof(char));
	gets(a);
	n=strlen(a);
	for(i=n-1;i>-1;i--)
		*(a+i+1)=*(a+i);
	*(a+n+1)=' ';
	*(a+n+2)='\0';
	*a=' ';
	for(i=n;i>=0;i--)
	{
		if(*(a+i)==' ')
		{
			for(j=i+1;*(a+j)!=' ';j++)
				printf("%c",*(a+j));
			if(i!=0)
				printf(" ");
		}
	}
}
int main()
{
	char a[100];
	int i,j,n,word=0;
	gets(a);
	n=strlen(a);
	for(i=n-1;i>=0;i--)
	{
		if(a[i]!=' ')word++;
        if(a[i]==' ')
	    {
			for(j=0;j<word;j++)
				printf("%c",a[i+j+1]);
			word=0;
			if(i!=0)printf(" ");
	    }
		if(i==0)
			for(j=0;j<word;j++)
				printf("%c",a[j]);
	}
}
int i,n,p,k;
char a[100],s[100][30];
void main()
{
	gets(a);
	n=strlen(a);
	p=0;
	k=0;
	for(i=0;i<n;i++)
	{	
		if(a[i]!=' ')
			s[k][p++]=a[i];
		else
		{
			s[k][p]=0;
			p=0;
			k++;
		}
	}
	for(i=k;i>0;i--)
		printf("%s ",s[i]);
	printf("%s\n",s[0]);
}
int main()
{
	char	s[100];
	char*	c = s;
	char*	k[50];
	int		kc = 0;
	int		i=0;
	gets(s);
	k[0] = (char*) malloc(sizeof(char)*100);
	for ( ; *c!=0; c++)
	{
		if ( *c != ' ' )
		{
			k[kc][i] = *c;
			i++;
		}
		else
		{
			k[kc][i] = 0;
			kc++;
			i=0;
			k[kc] = (char*) malloc(sizeof(char)*100);
		}
	}
	k[kc][i] = 0;
	for ( i=kc; i>=0; i--)
	{
		printf("%s", k[i]);
		if ( i!=0 ) printf(" ");
	}
	return 0;
}
char str[100];  
char word[100][100]; 
char a[1]; 
    
void main(){
    int i = 0;
    int j;
    char* p;
    gets(str);
    
    for(p = str;p-str < strlen(str);p ++){
        if(*p != ' '){
            a[0] = *p;
            strcat(word[i],a);
        }    
        else
            i++;
    }    
   
    for(j = i;j>0;j--)
        printf("%s ",word[j]);
        printf("%s",word[0]);
}
void main()
{
	char a[100],s;
	s=' ';
	int j=1,d,i,k;
	gets(a);
	for(k=0;k<100;k++)
		if(a[k]!=s)
		{if(a[k+1]==0)
		{puts(a);
		break;}
			else
				continue;}
		else
		{
    for(j=99;j>0;j--)
	{if(a[j]==s)
		{for(i=j+1;i<100;i++)
				{printf("%c",a[i]);
	if(a[i+1]==s||a[i+1]==0)
			{
	printf("%c",s);
	break;}}}}
	for(d=0;d<100;d++)
	{printf("%c",a[d]);
	if(a[d+1]==s)
		break;}
		break;}
}
int danci(char a[],char word[][100])
{
    int blank,i=0,j=0,n=0;
    while(a[i]!='\0')
    {
                     if(a[i]!=' '){word[n][j]=a[i];j=j+1;}
                     else if(a[i+1]!=' '&&a[i+1]!='\0'){n=n+1;j=0;}
                     i=i+1;
    }
    return (n+1);
}
int main()
{
    char a[100],word[100][100]={0};
    int n,i;
    gets(a);
    n=danci(a,word);
    for(i=n-1;i>0;i--)printf("%s ",word[i]);
    printf("%s",word[0]);
}
main()
{
      char c;int flag=1; 
      char word[100][100];
      int i=0,j=0,count=0; 
      while ((c=getchar())!='\n')
      {
            if (c==' '&&flag==1){flag=0;word[i][j]='\0';i++;j=0;count++;} 
            if (c!=' '&&c!='\n') {flag=1;word[i][j]=c;j++; } 
      } 
      
      for (int t=count;t>=0;t--){if(t>0)printf("%s ",word[t]);else printf("%s",word);} 
          
        
     
}
void main()
{
	int i=0,j=0,t;
	char a[20][20],c;
	while((c=getchar())!='\n')
	{
		if(c!=' ')
		{
			a[i][j]=c;
			j++;
		}
		else 
		{
			a[i][j]='\0';
			j=0;
		
			
			i++;
		}
	}
	a[i][j]='\0';
	for(t=i;t>0;t--)
		printf("%s ",a[t]);
	printf("%s",a[0]);
}
void main()
{
	int j=0,k=0;
	char a,b[50][15]={'\0'};
	while((a=getchar())!='\n')
	{
		if(a!=' ') b[j][k++]=a;
		else{ b[j][++k]='\0'; j++; k=0; }
	}
	for(k=j;k>=0;k--) { printf("%s",b[k]); if(k!=0) putchar(' '); }
}
void main()
{
	char (*str)[100];
	char substr[100][100];
	int m=0,i;
	for(i=0;;i++)
	{
		scanf("%s",substr[i]);
		m=m+1;
		if(getchar()=='\n') break;
	}
	str=substr;
	for(i=m-1;i>0;i--)
		printf("%s ",str[i]);
	printf("%s",str[0]);
}
int main()
{
    char a[10][10]={{0}};
    int i=0,j=0;
    int count=1;
    while(cin.get(a[i][j]))//????
    {
      if(a[i][j]==' '){i++;j=0;count++;}//????????????
      else if(a[i][j]=='\n')break;//?????????
      else j++;
    }//???a????????????
    if(count==1)//??
    {for(i=0;i<10;i++)
    {if(a[count-1][i]=='\n')break;
     else cout<<a[count-1][i];}
    }
    if(count!=1)
    {for(i=0;i<10;i++)//????????
    {if(a[count-1][i]=='\n')break;
     else cout<<a[count-1][i];}
     cout<<" ";}
    for(i=count-2;i>0;i--)//??????
      {for(j=0;j<10;j++)
        {cout<<a[i][j];if(a[i][j]==' ')break;}
      }
    if(count!=1)//???????
    {for(i=0;i<10;i++)
    {
      if(a[0][i]==' ')break;
      else cout<<a[0][i];
    }}
    cin>>i;
}
int main()
{
	char a[200],b[200];
	int i,j,n,k,m=0,num=0;
	
	gets(a);
	n=strlen(a);
	k=n-1;
	for(i=n-1;i>=0;i--)
	{
		if(a[i]==' ')
		{
			strncpy(&b[m],&a[i],k-i+1);
			m=m+k-i+1;
			k=i-1;
		}
	}
	b[m]=' ';
	m++;
	for(i=0;i<n;i++)
	{
		if(a[i]==' ')
		{
			strncpy(&b[m],&a[0],i);
			break;
		}
	}
	for(j=0;j<n;j++)
	{
		if(a[j]==' ')
			num++;
	}
	if(num==0)
	{
		printf("%s",a);
	}
	else
	{
	for(j=1;j<m+i;j++)
		printf("%c",b[j]);
	}
	return 1;
}
int main()
{
	char st[200],word[50][50]={""};
	gets(st);
	int i,j=0,l,number=0;
	l=strlen(st);
	
	for(i=0;i<l;i++)
	{
		if(st[i]!=' ')
			word[number][j++]=st[i];
		else if(st[i]==' '&&st[i+1]!=' ')
		{
			word[number++][j]='\0';
			j=0;
		}
	}
	word[number][j]='\0';
	for(i=number;i>0;i--)
	{
		printf("%s",word[i]);
		printf(" ");
	}
	printf("%s",word[0]);
	return 0;
}
int main()
{	char a[10][10];
	int i,s=0;
	for(i=0;;i++)
		{cin>>a[i];s+=1;
		if(getchar()=='\n')
			break;}
cout<<a[s-1];
	for(i=s-2;i>=0;i--)
		cout<<" "<<a[i];
	return 0;
}
/* ????main.cpp
 * ??????
 * ?????2012-11-07
 * ?????????(????????)?????????????????????????
 */

int main ()
{
	int i,k;//????
	char letter[105][55],a;//letter?????a????????
	k = 0;//???
	while ( cin >> letter[k] )//??????
	{
		cin.get(a);
		if ( a == '\n' )//?a????????????k?????
			break;
		k += 1;//????
	}
	cout << letter[k];//?????????
	for ( i = k - 1; i >= 0; i-- )//??????????????????
		cout << ' ' << letter[i];
	cout << endl;
	return 0;
}
int main()
{
    char str[200],*p,*q,*r,ans[200];
    int len,i;
    //freopen("input.txt","r",stdin);
    //freopen("output.txt","w",stdout);
    gets(str);
    len=strlen(str);
    for (p=str+len;p>str;p--) 
        *p=*(p-1);
    *p=' ';*(p+len+1)=' ';
    for (p=str+len+1,r=ans;p>=str;)
    {
        q=p-1;
        while (*q!=' ') q--;
        for (i=1;q+i<=p;i++)
            *r++=*(q+i);
        p=q;
    }
    for (i=0;i<len;i++) printf("%c",*(ans+i));
    return 0;
}
void main()
{
 char a[1000],c[1000];
 int i,j=1,k,b[1000]={0},len;
 gets(a);
 len=strlen(a);
 for(i=strlen(a)-1;i>=0;i--)
  a[i+1]=a[i];
 for(i=1;i<=len;i++)
  if(a[i]==' ')
   {b[j]=i;j++;}
 b[j]=len+1;
 //printf("%d",j);
 for(i=1;i<=j;i++)
  for(k=b[i-1]+1;k<=b[i]-1;k++)
  {
   c[k]=a[b[i-1]+b[i]-k];
   //printf("%d %d\n",k,b[i-1]+b[i]-k);
  }
 for(i=0;i<=j;i++)
  c[b[i]]=' ';
 for(i=len;i>=1;i--)
  printf("%c",c[i]);
}
void main()
{
	char s[100],*p;
	int n,i,t=0,m;
	gets(s);
	n=strlen(s);
	p=s;
	for(i=n-1;i>=0;i--)
	{
		t=t+1;
	//	printf("|%c|",*(p+i));
		if(s[i]==' ') 
		{
			for(m=1;m<=t-1;m++) 
		printf("%c",*(p+i+m));
		printf(" "); 
		//printf("t=%d",t);
		t=0;
		}
		if(i==0) {for(m=0;m<t;m++) printf("%c",*(p+i+m)); }
	}
}
void main()
{
	int i,j,k=0;
	char c[100];
	gets(c);
	for(i=strlen(c)-1;i>=0;i--)
	{    
		if(c[i]!=' ')
	 k++; 
		if(c[i]==' ')
		{	for(j=i+1;j<=i+k;j++)
				printf("%c",c[j]);printf(" ");k=0;}
		if(i==0)
			for(j=i;j<k;j++)
				printf("%c",c[j]);
	}
}
void main()
{
	char s[200];
	gets(s);
	int len=strlen(s),i,j,temp=len-1;
	for(i=len-1;i>=0;i--)
	{
		if(s[i]==' ')
		{
			for(j=i+1;j<=temp;j++)
				putchar(s[j]);
			putchar(s[i]);
			temp=i-1;
		}
		else
			if(i==0)
			{
				for(j=i;j<=temp;j++)
					putchar(s[j]);
			}
		
		
	}
}