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<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
int main()
{
    //int k,i,j,tep,x,a[170],m;
    char a[22];
    gets(a);
     cout<<strrev(a)<<endl;
return 0;
}

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

int main(){
	string A;
	cin >> A;
	reverse(A.begin(),A.end());
	cout << A <<"\n";
	return 0;
}

C++: #include<iostream>
#include<cstdio>
#include<string>
//入力された文字列を逆順に出力
using namespace std;

int main(){
  char a[20];
  scanf("%s",a);
  for(int i =strlen(a)-1;i >=0;i--){
    putchar(a[i]);
  }
}

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

int main()
{
    string A;
	char R;

	cin >> A;
	
	for(int i=0; i<=A.length()/2; i++){
		R = A[i];
		A[i] = A[A.length()-i-1];
		A[A.length()-i-1] = R;
	}
	cout << A;
	
    return 0;
}

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

using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<ll, ll> P;

#define EACH(i,a) for (auto& i : a)
#define FOR(i,a,b) for (ll i=(a);i<(b);i++)
#define RFOR(i,a,b) for (ll i=(b)-1;i>=(a);i--)
#define REP(i,n) for (ll i=0;i<(n);i++)
#define RREP(i,n) for (ll i=(n)-1;i>=0;i--)
#define debug(x) cout<<#x<<": "<<x<<endl
#define pb push_back
#define ALL(a) (a).begin(),(a).end()

const ll linf = 1e18;
const int inf = 1e9;
const double eps = 1e-12;
const double pi = acos(-1);

template<typename T>
istream& operator>>(istream& is, vector<T>& vec) {
	EACH(x,vec) is >> x;
	return is;
}
template<typename T>
ostream& operator<<(ostream& os, vector<T>& vec) {
	REP(i,vec.size()) {
		if (i) os << " ";
		os << vec[i];
	}
	return os;
}
template<typename T>
ostream& operator<<(ostream& os, vector< vector<T> >& vec) {
	REP(i,vec.size()) {
		if (i) os << endl;
		os << vec[i];
	}
	return os;
}

int main() {
	std::ios::sync_with_stdio(false);
	std::cin.tie(0);
	string s; cin >> s;
	reverse(ALL(s));
	cout << s << endl;
}

C++: #include <iostream>
#include <iomanip>
#include <list>
#include <map>
#include <algorithm>
#include <stack>

using namespace std;


int main(){
	char str[20];
	int j = 0;
	memset(str,'\0',sizeof(str));
	while(cin >> str){	
		for(int i = sizeof(str) / sizeof(char) - 1; i >= 0; i--){
			if(str[i] != '\0'){
				cout << str[i];
			}
		}
		cout << endl;
	}

	return 0;
}

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

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

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

using namespace std;

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

C++: #include<iostream>
#include<string>
#define loop(i,a,b) for(int i=a;i<b;i++)
#define rep(i,a) loop(i,0,a)
using namespace std;

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

C++: #include <string>
#include <iostream>
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<string.h>
int main(void) {
	int a;
	char str[20];
	scanf("%s", &str);
	a = strlen(str);
	for (int i = a-1; i >=0 ; i--)
	{
		printf("%c", str[i]);
	}
	printf("\n");
	return 0;
}

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

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

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

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

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

C++: using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {  string a = Console.ReadLine(); int b = a.Length;
            for (; b > 0; b--)
            { Console.Write(a[b]); }
            Console.WriteLine();
        }
    }
}

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

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

C++: #include <iostream>

using namespace std;

int main() {

	int l;
	char t, str[64];

	cin >> str;
	l=strlen(str);

	for(int i=0; i<l/2; i++) {
		t=str[i];
		str[i]=str[l-i-1];
		str[l-i-1]=t;
	}

	cout << str;

}

C++: #include <cstdio>

int main(){
  char str[20];
  int i = 0;

  scanf("%s", str);

  while (str[i] != '\0'){
    i++;
  }
  for (i--; i >= 0; i--){
    printf("%c", str[i]);
  }
  printf ("\n");
  return 0;
}

C++: #include<stdio.h>
#include<string.h>
int main(){
	char a[100];
	scanf("%s",&a);
	for(int i=strlen(a)-1;i>=0;i--){
		printf("%c\n",a[i]);
	}
	return 0;
}

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

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

  return 0;
}

C++: #include<iostream>
#include<string>
using namespace std;
int main(){

	string str;
	
	getline(cin,str);

	 for (string::reverse_iterator rit=str.rbegin(); rit!=str.rend(); ++rit)
    cout << *rit;

}

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

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

C++: #include<iostream>
#include<math.h>
#include<algorithm>
#include<string.h>
using namespace std;
int main(){
    string x;
    int i;
    cin>>x;
    for(i=x.size();i>=0;i--){
        if(x.size()>20){
            break;
        }
        cout<<x[i];
    }
    cout<<endl;
    return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <cstring>
#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++: #include<iostream>
#include<string>
using namespace std;

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

C++: #include <algorithm>
#include <bitset>
#include <cctype>
#include <cfloat>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <utility>
#include <vector>
#define FOR(x,a,b) for(int x=a;x<b;x++)
#define REP(x,b) for(int x=0;x<b;x++)
#define FORSIZE(x,A) for(int x=0;x<A.size();x++)
#define ITR(x,c) for(__typeof(c.begin()) x=c.begin();x!=c.end();x++)
#define SORT(x) sort(x.begin(),x.end())
#define RSORT(x) sort(x.rbegin(),x.rend())
#define rsort(x,n) sort(x, x+n, greater<int>())
#define REV(x) reverse(x.begin(),x.end())
using namespace std;
typedef long long ll;
inline int toInt(std::string s) {int v; std::istringstream sin(s);sin>>v;return v;}
template<class T> inline std::string toString(T x) {std::ostringstream sout;sout<<x;return sout.str();}

int main( int argc, const char* argv[] )
{
    string s;
    cin >> s;
    for (int i=s.size(); i>=0; i--) {
        cout << s[i];
    }
    cout << endl;
    return 0;
}