Go: package main

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

var sc = bufio.NewScanner(os.Stdin)

func read() string {
	sc.Scan()
	return sc.Text()
}

func main() {
	sc.Split(bufio.ScanLines)
	s := read()
	rv := ""
	cols := strings.Split(s, "")
	for i := 0; i < len(cols); i++ {
		rv += cols[len(cols)-1-i]
	}
	fmt.Println(rv)
}

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

int main() {
	const int size = 21;
	char str[size];
	std::scanf("%s", &str);

	for (int i = size - 1; i >= 0; i--)
		if (48 <= str[i] && str[i] <= 57)
			std::cout << str[i];
		else if(97 <= str[i] && str[i] <= 122)
			std::cout << str[i];

	std::cout << std::endl;
}

C++: #include<bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)
typedef long long LL;
int main(){
	string A;
	cin>>A;
	string B;
	REP(i,A.size()){
	    B.push_back(A[A.size()-1-i]);
	}
        cout<<B<<endl;
	return(0);
}

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

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

int main(){
    std::string str;
    while(std::cin >> str){
        for(auto it=str.rbegin(); it!=str.rend(); ++it)
            std::cout << *it;
    }
}

C++: #include <iostream>
#include <vector>
#include <string>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <algorithm>	// require sort next_permutation count __gcd reverse etc.
#include <cstdlib>	// require abs exit atof atoi 
#include <cstdio>		// require scanf printf
#include <functional>
#include <numeric>	// require accumulate
#include <cmath>		// require fabs
#include <climits>
#include <limits>
#include <cfloat>
#include <iomanip>	// require setw
#include <sstream>	// require stringstream 
#include <cstring>	// require memset
#include <cctype>		// require tolower, toupper
#include <fstream>	// require freopen
#include <ctime>		// require srand
#define rep(i,n) for(int i=0;i<(n);i++)
#define ALL(A) A.begin(), A.end()

using namespace std;

typedef long long ll;
typedef pair<int, int> P;

int main()
{
//	cut here before submit 
//	freopen ("testcase.RS", "r", stdin );
	string str = "";
	cin >> str;
	reverse (ALL (str ) );
	cout << str << endl;
		
	return 0;
}

C++: #include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(){
	string s;
	cin>>s;
	reverse(s.begin(),s.end());
	cout<<s<<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];
	}
	cout << endl;
	return 0;
}

C++: #include<stdio.h>
#include<iostream>
#include<math.h>
#include<algorithm>
#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 <cstdio>

#define N 20
using namespace std;

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

C++: // In the name of Allah
#include <stdio.h>
#include <string.h>

int main(){
	char st[21];
	scanf("%s",&st);
	strrev(st);
	printf("%s",st);
	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-1];
	}
	cout << endl;
	return 0;
}

C++: #include<iostream>
#include<iomanip>
#include<map>
#include<set>
#include<string>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<stack>
#include<cstring>
#include<sstream>
using namespace std;
 
#define P(p) cout<<(p)<<endl
#define rep(i,m,n) for(int i = (m); i < (int)(n); i++)
#define rrep(i,m,n) for(int i=(int)(m); i>=(int)(n); i--)
#define vsort(v) sort(v.begin(), v.end());
#define rvsort(v) sort(v.begin(), v.end(),greater<int>());
#define YES cout<<"YES"<< endl
#define NO cout<<"NO"<<endl
#define Yes cout<<"Yes"<<endl
#define No cout<<"No"<<endl  
#define yes cout<<"yes"<<endl
#define no cout<<"no"<<endl
#define ret return
#define lb(v,n) lower_bound(v.begin(),v.end(),n)
#define ub(v,n) upper_bound(v.begin(),v.end(),n)
#define mae(v) max_element(v.begin(),v.end())
#define mie(v) min_element(v.begin(),v.end())

////////////////////////////////////////////////////////////

int main(){
	string s;
	cin >> s;

	rrep(i,s.size()  - 1, 0 )
		cout << s[i];
	cout << endl;
	ret 0;
}

C++: /*
C++ ???????????????????????????????????¬??????
??????AOJ-ITP1??????????????????
*/
#define _USE_MATH_DEFINES

#include <iostream> // ?¨??????\??????
#include <fstream>  // ??????????????\??????
#include <string>   // ???????????¢???
#include <vector>   // ???????????????
#include <cmath>    // ??°??????
#include <iomanip>  // stream???????????¢???
#include <algorithm>// max??¢??°??????

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;        // ????´???°????????????????????????
using std::fixed;         // ???????????????????¨???????????????????????????????
using std::setprecision;  // ?????°????°???°?????\???????????°????????????????????¨????????\???

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

C++: #include<bits/stdc++.h>
int main()
{
	int i=21;
	char st[21];
	memset(st,false,sizeof(st));
	scanf("%s",&st);
	for(;i--;){
		if(st[i]){
			if(isalnum(st[i]) || isalpha(st[i])){
				printf("%c",st[i]);
			}
	}
	printf("\n");
	return 0;
}
}

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

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

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

int main(void){
	int i;
	int len;
	char str[20],rts[20] = {};

	scanf("%s",str);
	len = strlen(str);
	for(i = 0;i < len;i++){
		rts[i] = str[len - (i+1)];
	}
	printf("%s\n",rts);
	return 0;
}

C++: #include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
typedef pair<int, int> ii;
typedef pair<ll, int> li;
typedef pair<int, ll> il;
typedef vector<ii> vii;
typedef vector<il> vil;
typedef vector<li> vli;

#define F first
#define S second
#define pb(x) push_back(x)
#define mp(a,b) make_pair(a,b)
#define sz size()
#define all(A)    A.begin(), A.end()
#define mem(a, b) memset(a, b, sizeof(a))
#define f0(i,b)   for(int i=0;i<(b);i++)
#define f1(i,b)   for(int i=1;i<=(b);i++)
#define f2(i,a,b) for(int i=(a);i<=(b);i++)
#define fr(i,b,a) for(int i=(b);i>=(a);i--)
#define rep(i,a,b,c) for(int i=(a);i!=(b);i+=(c))
#define mod 1000000007

#define forr(i,n)    for(i=0; i<n; i++)
#define whilee(i,t)  while(i!=t)
#define  sl(a)  scanf("%lld",&a)
#define  pl(a)  printf("%lld",a)

//for(auto it =A.begin(); it!=A.end(); it++)
//sort(A.begin(),A.end());
//binary_search(A.begin(),A.end(),x);
//reverse(A.begin(), A.end());
//cout << *max_element(A.begin(), A.end());
//cout << *min_element(A.begin(), A.end());
//count(A.begin(), A.end(), X); //counts the occurrences of X
//distance(A.begin(),A.end());  //distance between first to last element
//accumulate(A.begin(), A.end(), 0); //add
//next_permutation(A.begin(), A.end());
//prev_permutation(A.begin(), A.end());
//swap(S[0], T[0]);
//scanf("%d",&x);
//printf("%d\n",x);

//vector <int> A;
//deque <int> A;
//queue <int> A;
//stack <int> A;
//set <int> A;
//map <int,int> A;
//pair <int,int> A ;
//vector <pair <int,int>> A ;
//char ch;
string S, T, U;
ll i, j, k, a, b, c, d, f, g, h, l, m, n, p, q, r, s, t, w, x, y, z, maxx=INT_MIN, minn=INT_MAX, ans=0, sum=0, cnt=0;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    cin>>S;
    reverse(all(S));
    cout<<S<<endl;
    return 0;
}