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++: // clang-format off
#include <bits/stdc++.h>
#define int long long
#define main signed main()
// #define main int main()
#define loop(i, a, n) for (int i = (a); i < (n); i++)
#define rep(i, n) loop(i, 0, n)
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()
#define prec(n) fixed << setprecision(n)
#define stlice(from, to) substr(from, (to) - (from) + 1)
#define pb push_back
#define mp make_pair
#define mt make_tuple
#define fi first
#define se second
using namespace std;
using pii = pair<int, int>;
using vi = vector<int>;
using vd = vector<double>;
using vc = vector<char>;
using vb = vector<bool>;
using vs = vector<string>;
using vpii = vector<pii>;
using vvi = vector<vi>;
using vvb = vector<vb>;
using vvpii = vector<vpii>;
template<typename A> using fn = function<A>;
constexpr int INF = sizeof(int) == sizeof(long long) ? 1000000000000000000LL : 1000000000;
constexpr int MOD = 1000000007;
constexpr double PI = acos(-1);
template<typename A, typename B> bool cmin(A &a, const B &b) { return a > b ? (a = b, true) : false; }
template<typename A, typename B> bool cmax(A &a, const B &b) { return a < b ? (a = b, true) : false; }
constexpr bool odd(const int &n) { return n & 1; }
constexpr bool even(const int &n) { return !odd(n); }
template<typename V> constexpr typename V::value_type sum(const V &v) { return accumulate(all(v), 0); }
void solve();
main { solve(); return 0; }
// clang-format on

void solve() {
  string s;
  cin >> s;
  reverse(all(s));
  cout << s << endl;
}

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

namespace coding
{
    class Program
    {
        static void Main(string[] args)
        {
            string input = Console.ReadLine();
            string output = "";             
            for (int i = input.Length - 1; i >= 0; i--)
            {
                output = output + input[i];
            }
            Console.WriteLine(output);
        }
    }
}

C++: #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <string>
#include <cctype>

using namespace std;

int main() {

	string st;
	int stlen;

	while (cin >> st) {
		stlen = st.size();
		for (int i = stlen - 1; i >= 0; i--) {
			cout << st[i];
		}
		putchar('\n');
	}
	
	return 0;
}

C++: #include<iostream>
#include<string>
using namespace std;
int main(){
	string a;
		cin >> a;
		if(a.length() > 20){
			return 0;
		}

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

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

using namespace std;

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

C++: #include<stdio.h>

int main(void)
{
	int i = 0 ;
	char str[100];
	
	scanf("%s",str);
	
	for(;str[i] != NULL ; i++);
	for(; i >= 0 ; i--) printf("%c",str[i]);
}

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>
#include <string>
#include <algorithm>

using namespace std;

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

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

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

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

C++: #include<stdio.h>
int main(){
    char str[21]={0};
    int cou=0;
    scanf("%s",str);
    for(int i=0;str[i]!='\0';i++){
        cou++;
    }
    for(int i=cou-1;i>=0;i--){
        printf("%c",str[i]);
    }
    return 0;
}

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

using namespace std;
int a;
char test[21];
char temp;

int main()
{
	scanf("%s",test);
	for(a=strlen(test)-1;a>=0;a--)
	{
	printf("%c",test[a]);
	}
	printf("\n");
	return 0; 
}

C++: /*
    ????????°??§???????????¨????????????
*/

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <limits.h>
#include <iostream>
#include <algorithm>
#include <string>
#include <iterator>
#include <vector>
#include <map>
#include <utility>
#define LLU unsigned long long int
#define LL long long int
#define LD long double
using namespace std;
#define LLUmax ULLONG_MAX
#define LLmax LLONG_MAX
#define dmax INT_MAX
#define vd vector<int>
#define vLL vector<long long int>
#define vLLU vector<unsigned long long int> 
#define pb push_back
#define mp make_pair
#define fi first
#define sec second
#define debug printf("asd\n")
#define debugd(a) printf("--%d\n",a)
#define debugdd(a,b) printf("--%d %d\n",a,b)
#define debugarr(a,b) for(int i=0 ; i<b ; i++)printf("%d ",a[i]);printf("\n")
#define newline printf("\n")
#define forin(a,b,c) for(int a=b ; a<c ; a++)
#define forde(a,b,c) for(int a=b ; a<c ; a--)


inline void scd(int &a){scanf("%d",&a);}
inline void scdd(int &a,int &b){scanf("%d %d",&a,&b);}
inline void sctd(int &a,int &b,int &c){scanf("%d %d %d",&a,&b,&c);}
inline void scdlld(long int &a,long int &b){scanf("%I64d %I64d",&a,&b);}
inline void sclld(long long int &a){scanf("%I64d",&a);}

#define scarrd(a,b) for(int index=0 ; index<b ; index++)scanf("%d",&a[index])
#define prdlld(a,b) printf("%I64d %I64d",a,b)
#define prdd(a,b) printf("%d %d",a,b)
#define prd(a) printf("%d",a)
#define prarr(a,b) for(int i=0 ; i<b ; i++)printf("%d ",a[i])
#define iniarr(a,b) for(int i=0 ; i<b ;i++)a[i]=0
#define arr(a,b) int *a=(int *)malloc(b*sizeof(int))
#define llarr(a,b) long long int *a=(long long int *)malloc(b*sizeof(long long int))
#define st(a,b) char *a=(char *)malloc(b*sizeof(char))
#define grav 9.8
#define pi 3.14159265

int main()
{
	char a[20000];
	scanf("%s",a);
	int len=strlen(a);
	for(int i=len-1 ; i>=0 ; i--)
	printf("%c",a[i]);
	newline;
	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 <string>
using namespace std;
int main(){
	string s;
	cin>>s;
	for(int i=0;i<20;i++){
		cout<<s[20-1-i]<;
	}
	cout<<endl;
    return 0;
}

C++: /*文字列 str を入力し、その文字列を逆順に出力するプログラムを作成して下さい。
文字は半角英数字のみで、20 文字以内とします。*/ 
#include<iostream>
using namespace std;
int main(){
    string str;
    cin>>str;
    char ji[str.size()];
    for(int i=0;i<=str.size();i++){
       ji[i]=str[str.size()-i];
    }
    for(int i=0;i<=str.size();i++){
       cout<<ji[i];
    }
    cout<<endl;
}

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

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

C++: #include <stdio.h>

int main(void) {
	char str[20];
	int i;
	scanf("%s",str);
	for(i = 0; strlen(str) > i; i++){
		printf("%c",str[strlen(str)-1 - i]);
	}
	printf("\n");
	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;
}

C++: /*
 * http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0006
 */
#include <iostream>
#include <string>

using namespace	std;

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