Go: package main

import (
        "fmt"
)

func main () {
        var str string
        fmt.Scanf("%s", &str)
        show(len(str)-1, str)
}

func show(n int, str string) {
        if n == 0 {
                fmt.Printf("%s\n", string(str[n]))
        } else {
                fmt.Printf("%s", string(str[n]))
                show(n-1, str)
        }
}

C++: #include<iostream>
#include<string>
using namespace std;

int main(){
	string str;
	cin >> str;
	
	string::reverse_iterator it = str.rbegin();
	while(it != str.rend()){
		cout << *it;
		it++;
	}
	cout << endl;
	return 0;
}

C++: #include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <cstring>
#include <climits>
#include <cmath>
#include <cfloat>

#define FOR(i,b,n) for(int i=b;i<n;i++)
#define CLR(mat) memset(mat, 0, sizeof(mat))
#define INF 1<<25

using namespace std;

string str, rstr;

int main()
{
	while( cin >> str, !cin.eof())
	{
		rstr = string( str.rbegin() , str.rend() );

		cout << rstr << endl;
	}

	return 0;
}

C++: #include<map>
#include<set>
#include<list>
#include<cmath>
#include<queue>
#include<stack>
#include<cstdio>
#include<string>
#include<vector>
#include<complex>
#include<cstdlib>
#include<cstring>
#include<climits>
#include<numeric>
#include<sstream>
#include<iostream>
#include<iomanip>
#include<algorithm>
#include<functional>
#include<math.h>

#define MP make_pair
#define PB push_back
#define ALL(x) (x).begin(),(x).end()
#define REP(i,n) for(int i=0;i<(n);i++)
#define REP1(i,n) for(int i=1;i<(n);i++)
#define REP2(i,d,n) for(int i=(d);i<(n);i++)
#define RREP(i,n) for(int i=(n);i>0;i--)
#define CLR(a)      memset((a),0,sizeof(a))
#define MCLR(a)     memset((a),-1,sizeof(a))
#define RANGE(x,y,maxX,maxY) (0 <= (x) && 0 <= (y) && (x) < (maxX) && (y) < (maxY))

using namespace std;

typedef long long LL;
typedef unsigned long long ULL;
typedef vector<int> VI;
typedef vector<VI > VVI;
typedef vector<string> VS;
typedef vector<LL> VLL;
typedef pair<int,int> PII;

const int INF = 0x3f3f3f3f;
const LL INFL = 0x3f3f3f3f3f3f3f3fLL;
const double EPS = 1e-9;

const int DX[]={1,0,-1,0},DY[]={0,-1,0,1};

int main(){
	string str;
	int i;
	cin >> str;
	RREP(i,str.size()){
		cout << str[i-1];
	}
	cout << endl;
	return 0;
}

C++: #include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <iomanip>
#include <utility>
#include <string>
typedef unsigned long ul;

using namespace std;

int main(){
	int len;
	string str;
	cin >> str;
	len = str.length();
	for(int i = len-1; i >= 0; i--){
		cout << str.at(i);
	}
	cout << endl;
}

C++: #include<iostream>
#include<stdio.h>
using namespace std;

int main(){
	char c[20];
	int cnt=0;
	do{
		scanf("%c",&c[cnt]);
		cnt++;
	}while(c[cnt]);
	for(int i=cnt-1;i>=-1;i--){
		cout<<c[i+1];
	}
	return 0;
}

C++: #include <iostream>
#include <string>
#include <algorithm>
using namespace std;

// A
int main() {
    ios_base::sync_with_stdio(false);

    string input;

    cin >> input;

    reverse(input.begin(), input.end());

    cout << input << endl;
}

C++: #include "bits/stdc++.h"

#define REP(i,num) for(int i=0;i<(num);++i)
#define ALL(c) c.begin(),c.end()
#define PRINTALL(c) for(auto& x:c){cout<<x<<' ';}cout<<endl;
#define PAIRCOMP(c,comp) [](const pair<ll,ll>& lhs,const pair<ll,ll>& rhs){return lhs.c comp rhs.c;}

using namespace std;
using ll = long long;

constexpr ll atcoder_mod = 1e9+7;

template<typename T=int>
T in(){T x; cin >> x; return (x);}
template<typename T=int,typename C=vector<T>>
C vecin(int N){C x(N);REP(i,N){x[i]=in<T>();}return move(x);}

void vout(){cout << endl;}
template<typename Head,typename... Tail>
void vout(Head&& h,Tail&&... t){cout << ' ' << h;vout(forward<Tail>(t)...);}
void out(){cout << endl;}
template<typename Head,typename... Tail>
void out(Head&& h,Tail&&... t){cout << h;vout(forward<Tail>(t)...);}

int main(){
	cin.tie(0);
	ios::sync_with_stdio(false);
	
	auto S=in<string>();
	reverse(ALL(S));
	
	out(S);
	return 0;
}

C++: #include <stdio.h>
int main(void){
  
  int i=0,j,n,k=0;
  char a[21],b[21];
  
  while(1)
    {
      scanf("%c",&a[i]);
      if(a[i]=='\0')break;
      i++;
    }
  
  for(j=i-2;j>=0;j--)
    {
      b[j]=a[k];
      k++;
    }
  b[j]='\0';

  printf("%s\n",b);
  return 0;
}

C++: #include <iostream>
#include <string>
#include <algorithm>

int main()
{
    std::string str;
    std::cin >> str;
    std::reverse(str.begin(), str.end());
    std::cout << str << std::endl;
    return 0;
}

C++: #include <iostream>
#include <sstream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <algorithm>
#include <functional>

using namespace std;

int gcd( int, int );

int main()
{
	char str[21];

	while ( fgets( str, sizeof( str ), stdin ) )
	{
		for ( int i = strlen( str ) - 2; 0 <= i; i-- )
		{
			putchar( str[i] );
		}
		putchar('\n');
	}

	return 0;
}

C++: #include<stdio.h>
#include<string.h>
int main() {
   char r[20],temp;
   int i,j=0;
   gets(r);
   i = 0;
   j = strlen(r) - 1;
   while (i < j) {
      temp= r[i];
      r[i]=r[j];
      r[j]=temp;
      i++;
      j--;
   }
   printf("%s\n",r);
   return (0);
}

C++: #include<string>
#include<vector>
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<sstream>
#include<functional>
#include<map>
#include<set>
#include<cmath>

#define REP(i,s,e) for(int i=int(s);i<int(e);i++)
#define rep(i,n) for(int i=0;i<int(n);i++)

using namespace std;

int main(){

	string str;
	cin >> str;

	int n=str.size();
	rep(i,n)
	cout << str[n-1-i];
	cout << endl;

    return 0;

}

C++: #include <iostream>
#include <string>
using namespace std;

int main() {
    
    string str;
    string::reverse_iterator rStr;
    cin >> str;
    for(rStr = str.rbegin(); rStr < str.rend(); rStr++) cout << *rStr;
    return 0;
}

C++: #include <iostream>
#include <vector>
#include <algorithm>
#include <iomanip>
#include <string>

int main(int,char**){
	std::string str;
	std::cin >> str;
	for(int i(str.size());i>=0;--i){
		std::cout << str[i];
	}
	return 0;
}

C++: #include<stdio.h>
#include<string.h>
int void()
{
    char str[20];
    gets(str);
    strrev(str);
    puts(str);
}

C++: #include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
  string str;
  cin >> str;
  reverse(str.begin(), str.end());
  cout << str << endl;
}

C++: #include <stdio.h>
#include <string.h>

int main( void ){
    char str[20];
    scanf( "%s",str );
    for( int i = strlen( str );i > 0;--i )printf( "%c",str[i] );
    return 0;
}

C++: //41
#include<iostream>
#include<string>
#include<algorithm>

using namespace std;

int main(){
  string s;
  cin>>s;
  reverse(s.begin(),s.end());
  cout<<s<<endl;
  return 0;
}

C++: #include <iostream>
#include <string>
using namespace std;

int main() {
	string s;
	cin>>s;
	for(int i=s.size();i>=0;i--){
		cout<<s[i];
	}cout<<endl;
}

C++: #include <iostream>
#include <cstring>
#include <cstdio>

using namespace std;

void sort(char *str){
	int len, len2 = 0;
	char work; 
	len = strlen(str);

	for(len = len - 1; len > len2; len--,len2++){
		work = str[len];
		str[len] = str[len2];
		str[len2] = work;
	}
}

int main(){
	char str[20];
	while (cin >> str) {
		sort(str);
		cout << str << endl;
	}
	return 0;
}

C++: #include<iostream>
#include<string>
using namespace std;

int main(){

	string str;
	int i, l;

	cin >> str;

	l = str.size();

	for( i=1; i<=l; i++ ){
		cout << str[ l - i ];
	}

	cout << endl;

	return 0;
}

C++: #include<iostream>
#include<string>
using namespace std;
int main() {
  string s;
  cin>>s;
  for(int i=s.size()-1;i>=0;i--){
    cout<<s[i];
  }
  cout<<endl;
}