#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

void reverse(char *p,char *k)
  {
   swap(*(p++),*(--k));
   if(p<k) reverse(p,k);
  }

void wreverse(char *p,char *k)
  {
   if(*p==' ') wreverse(p+1,p+1);
   else if((*k)&&(*k!=' ')) wreverse(p,k+1);
   else
     {
      if(p<k) reverse(p,k);
      if(*k) wreverse(k,k);
     }
  }

int main()
  {
   const char tb[]="Ala ma czarnego kota";
   char str[sizeof(tb)];
   memcpy(str,tb,sizeof(tb));
   reverse(str,str+strlen(str));
   wreverse(str,str);
   cout<<str<<endl;
   return 0;
  }