Go: package main

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

func reverse(s string) string {
	runes := []rune(s)
	for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
		runes[i], runes[j] = runes[j], runes[i]
	}
	return string(runes)
}

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	input := scanner.Text()
	fmt.Println(reverse(input))
}

C++: #include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
#include<set>
#include<string>
#include<functional>
#include<queue>
#include<stack>
#include<math.h>
#define INF 999999

using namespace std;

typedef long long ll;

ll gcd(ll a, ll b)
{
	if (b == 0)return a;
	else return gcd(b, a%b);
}

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

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

	return 0;
}

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

C++: 
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <cmath>
#include <utility>
    
#define ll (long long)
#define REP(i,n) for(int i = 0;i<(int)n;i++)
#define FOR(i,a,b) for(int i = (a);i < (b);i++)
#define RFOR(i,a,b) for(int i = (a);i>(b);i--)


using namespace std;


int main(void)
{
    char str[30] = {};
    char temp;
    int size = 0;
    gets(str);
    while(*(str+size))
        size++;
    RFOR(i, size-1,-1)
    cout << *(str+i);
    cout << endl;
    return 0;
    

    }

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

C++: #include <iostream>

int main() {
	using namespace std;

	string str;
	cin >> str;
	for (string::reverse_iterator rit = str.rbegin(); rit != str.rend(); ++rit) {
		cout << *rit;
	}
	cout << endl;

	return 0;
}

C++: #include<stdio.h>
  int main(void){
   char n[100]={0};
      int i=20;
      scanf("%s",n);
      for(i;i<n;i--){
        if(n[i]!=0)printf("%c",n[i]);
      }
  return 0;
  }

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

C++: #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 s1,s2;
	cin >> s1;
    int i,j;
	for(i=s1.size()-1,j=0;i>=0;i--,j++){
		s2[j] = s1[i];
	}
	
	for(i=0;i<s2.size();i++){
		cout <<s2[i];
	}
	cout <<endl;
	
	return 0;
}

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

int main()
{
        cin >> masukkan;
        reverse(masukkan.begin(),masukkan.end());

        cout << masukkan;
}

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++: 
/* vo00_06.cpp */
#include <iostream>
#include <string>
using namespace std;

int main()
{
	string str;
	string::iterator istr;
	cin >> str;

	while (str.size()) {
		istr = str.end();
		cout << str.at(str.size() - 1);
		str.erase(istr - 1, istr);
	}

	cout << '\n';

	return 0;
}

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

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

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

using namespace std;

#define LOG(...) fprintf(stderr, __VA_ARGS__)
//#define LOG(...)
#define FOR(i, a, b) for(int i=(int)(a); i<(int)(b); ++i)
#define REP(i, n) for(int i=0; i<(int)(n); ++i)
#define ALL(a) (a).begin(), (a).end()
#define RALL(a) (a).rbegin(), (a).rend()
#define EXIST(s, e) ((s).find(e)!=(s).end())
#define SORT(c) sort(ALL(c))
#define RSORT(c) sort(RALL(c))
#define SQ(n) (n) * (n)

typedef long long ll;
typedef unsigned long long ull;
typedef vector<bool> vb;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<vb> vvb;
typedef vector<vi> vvi;
typedef vector<vll> vvll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

int main() {
  string s;
  cin >> s;
  reverse(ALL(s));
  cout << s << endl;
}

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

C++: #include <bits/stdc++.h>
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define rep(i,n) for (int i=0;i<(int)(n);i++)
#define codefor int test;scanf("%d",&test);while(test--)
#define yn(ans) cout<<(ans?"Yes":"No")<<endl
#define YN(ans) cout<<(ans?"YES":"NO")<<endl
#define umap unordered_map
#define uset unordered_set
using namespace std;
using ll = long long;
//入力系
void scan(int& a){scanf("%d",&a);}
void scan(long long& a){scanf("%lld",&a);}
template<class T> void scan(T& a){cin>>a;}
template<class T> void scan(vector<T>& vec){for(auto&& it:vec)scan(it);}
void in(){}
template <class Head, class... Tail> void in(Head& head, Tail&... tail){scan(head);in(tail...);}
//出力系
void print(int& a){printf("%d",a);}
//void print(long long& a){printf("%lld",a);}
void print(double& a){printf("%.15lf",a);}
template<class T> void print(T& a){cout<<a;}
template<class T> void print(vector<T>& vec){if(vec.empty())return;print(vec[0]);for(auto it=vec.begin();++it!= vec.end();){putchar(' ');print(*it);}}
void out(){putchar('\n');}
template<class T> void out(T& t){print(t);putchar('\n');}
template <class Head, class... Tail> void out(Head& head, Tail&... tail){print(head);putchar(' ');out(tail...);}
//デバッグ系
template<class T> void dprint(T& a){cerr<<a;}
template<class T> void dprint(vector<T>& vec){if(vec.empty())return;cerr<<vec[0];for(auto it=vec.begin();++it!= vec.end();){cerr<<" "<<*it;}}
void debug(){cerr<<endl;}
template<class T> void debug(T& t){dprint(t);cerr<<endl;}
template <class Head, class... Tail> void debug(Head& head, Tail&... tail){dprint(head);cerr<<" ";debug(tail...);}

int main(){
    string s;
    in(s);
    reverse(all(s));
    out(s);
}

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

int main(){
string s,ans="";
int sl;
cin>>s;
sl=s.size();
for(int i=sl-1;i>-1;i--)ans+=s[i];
cout<<ans<<endl;}

C++: #include<iostream>
#include<cstring>
using namespace std;
int main(){
  cin.tie(0);
  ios::sync_with_stdio(false);
  string str;
  cin>>str;
  reverse(str.begin(),str.end());
  cout<<str<<endl;
  return 0;;
}

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

int main()
{
	char s[22];
	scanf("%s",s);
	for(int i = 0; i < strlen(s); i++)
	{
		printf("%c",s[strlen(s) - i - 1]);
	}
	printf("\n");
	return 0;
}

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

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

using namespace std;

int main()
{
	char str[20];
	cin >> str;
	int len = strlen(str);
	for (int i = len; i >0; i--)
	{
		cout << str[i-1];
	}
	return 0;
}

C++: #include<bits/stdc++.h>
#define rep(i,n) for(int i=0;i<(n);i++)
#define loop(i,x,n) for(int i=(x);i<(n);i++)
#define all(x) (x).begin(),(x).end()
#define pb push_back
#define mp make_pair
#define fir first
#define sec second
#define ub upper_bound
#define lb lower_bound
#define int long long
using namespace std;
const int MOD=1000000007;
const int INF=1000000009;

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