Go: package main

import (
	"bufio"
	"fmt"
	"os"
)

var sc = bufio.NewScanner(os.Stdin)

func main() {
	sc.Scan()
	s := sc.Text()
	l := len(s)
	r := make([]rune, l)
	for i, c := range s {
		r[l-i-1] = c
	}
	fmt.Println(string(r))
}

C++: #include <cstdlib>
#include <cmath>
#include <climits>
#include <cfloat>
#include <map>
#include <utility>
#include <set>
#include <iostream>
#include <memory>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
#include <sstream>
#include <deque>
#include <complex>
#include <stack>
#include <queue>
#include <cstdio>
#include <cctype>
#include <cstring>
#include <ctime>
#include <iterator>
#include <bitset>
#include <numeric>
#include <list>
#include <iomanip>

#if __cplusplus >= 201103L
#include <array>
#include <tuple>
#include <initializer_list>
#include <unordered_set>
#include <unordered_map>
#include <forward_list>

#define cauto const auto&
#define ALL(v) begin(v),end(v)
#else
#define ALL(v) (v).begin(),(v).end()
#endif

using namespace std;


namespace{
typedef long long LL;
typedef pair<int,int> pii;
typedef pair<LL,LL> pll;

typedef vector<int> vint;
typedef vector<vector<int> > vvint;
typedef vector<long long> vll, vLL;
typedef vector<vector<long long> > vvll, vvLL;

#define VV(T) vector<vector< T > >

template <class T>
void initvv(vector<vector<T> > &v, int a, int b, const T &t = T()){
	v.assign(a, vector<T>(b, t));
}

template <class F, class T>
void convert(const F &f, T &t){
	stringstream ss;
	ss << f;
	ss >> t;
}


#define REP(i,n) for(int i=0;i<int(n);++i)
#define RALL(v) (v).rbegin(),(v).rend()


#define MOD 1000000007LL
#define EPS 1e-8


void mainmain(){
	string s;
	cin >> s;
	reverse(ALL(s));
	cout << s << endl;
	
}



}
int main() try{
	mainmain();
}
catch(...){}

C++: #include<iostream>
#include<cstring>
using namespace std;
	
int main()
{
	char str[19];
	cout<<"??????????????\????????????????????????\n";
	cin>>str[19];
	int j=strlen(str);
	j-=1;
	for(int i=j;i>=0;i--){
	cout<<str[i];
	}
	return 0;
}

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

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 <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

int main() {
	char str[30];
	scanf("%s", str);
	reverse(str, str+strlen(str));
	printf("%s\n", str);
	return 0;
}

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

C++: #include<iostream>
using namespace std;
int main() {
	char str[20];
	cin >> str;
	int seek;
	for(seek = 0;seek < 20;seek++) {
		if(str[seek] == '\0') {
			break;
		}
	}
	seek--;
	for(int rv = seek;rv>=0;rv--) {
		cout << str[rv];
	}
	cout << endl;
	
	return 0;
}

C++: #include <iostream>
#include <iostring>
#include <algorithm>
using namespace std;
int main(){
char a[40]={0};
int len,b;
cin.getline(a,40);
len = strlen(a);
for(int i=len-1;i>=0;i--){
cout<<a[i];
}
cout<<endl;
return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;

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

	string str;
	cin >> str;

	reverse( str.begin(), str.end() );
	cout << str << endl;
}

C++: #include<bits/stdc++.h>
using namespace std;

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

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

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

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

using namespace std;

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

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

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

C++: // 失敗するからこそ そこから立ち向かって行く強さがあってそんな強さが本当の強さだと私は思うから
#ifdef DAIJOBU
#include "/home/v-o_o-v/deb.h"
#define deb(x...) cerr << "[" << #x << "] = ["; _print(x)
#else
#include <bits/stdc++.h>
#define deb(x...)
#endif 

using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	string s;
	cin >> s;
	reverse(s.begin(), s.end());
	cout << s << '\n';
	return 0;
}
// Write Here

C++: #define _CRT_SECURE_NO_WARNINGS
#include<cstdio>
#include<cstring>

int main(){
	char str[20];
	gets(str);
	for (int i = strlen(str) - 1; i >= 0; i--)
		printf("%c\n", str[i]);
	return 0;
}

C++: #include <iostream>
#include <string>
#include <vector>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <stdio.h>

using namespace std;

int main()
{
	string str;

	cin>>str;

	for(int i=str.size()-1;i>=0;i--) cout<<str[i];
	cout<<endl;

	return 0;
}

C++: #include <iostream>
#include <string.h>
using namespace std;
char a[20];
int CharNumber;
int z = 0;
char temp;

int main()
{
        cin >> a;
        CharNumber = strlen(a);

    for(int x = 0; x < CharNumber; x++)
    {
                for(z = 0; z < CharNumber-x-1; z++)
        {
            temp = a[z+1];
            a[z+1] = a[z];
            a[z] = temp;
        }
    }



        cout << a;


}

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

int main(){
	std::bacic_string st;
	std::cin >> st;
	
	while(!(st.empty())){
		std::cout << st.back();
		st.pop_back();
	}
	std::cout << std::endl;
	return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <time.h>
#include <math.h>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <algorithm>
#include <iterator>
#include <sstream>
#include <string>
#include <bitset>
using namespace std;
#define FOR(I,F,N) for(int I = F; I < (int)(N); I++)
#define rep(i, n) FOR(i, 0, n)
#define FIN(V) cout<<V<<endl
#define pb push_back
#define INF (1 << 30)
typedef pair<int, int> P;
typedef long long ll;
typedef priority_queue<int> pq;
int StrToInt(string);
string IntToStr(int);
int dx[4] = {1, -1, 0, 0};
int dy[4] = {0, 0, 1, -1};

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

	return 0;
}



int StrToInt(string s){
	stringstream ss;
	ss << s;
	int val;
	ss >> val;
	return val;
}
string IntToStr(int i){
	stringstream ss;
	ss << i;
	return ss.str();
}

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

int main()
{
	string str;

	cin>>str;

	for(int i=0;i<str.size();i++){
		cout<<str.at(str.size()-i-1);
	}
}