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<vector>
#include<algorithm>
#include<string>
using namespace std;
int main() {
    string s(20,'A');
    cin>>s;
    for(int i=19;i>=0;i--){
        if(s[i]!='A')cout<<s[i];
    }
    cout<<endl;
    return 0;
}

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

using namespace std;

typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef complex<double> P;
typedef pair<int,int> pii;
#define REP(i,n) for(ll i=0;i<n;++i)
#define REPR(i,n) for(ll i=1;i<n;++i)
#define FOR(i,a,b) for(ll i=a;i<b;++i)

#define DEBUG(x) cout<<#x<<": "<<x<<endl
#define DEBUG_VEC(v) cout<<#v<<":";REP(i,v.size())cout<<" "<<v[i];cout<<endl
#define ALL(a) (a).begin(),(a).end()

#define MOD (ll)(1e9+7)
#define ADD(a,b) a=((a)+(b))%MOD
#define FIX(a) ((a)%MOD+MOD)%MOD

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

C++: #include<stdio.h>
#include<string.h>
int main(){
    char str[50];
    char *rev;
    scanf("%s",str);
    rev = strrev(str);
    printf("%s ",rev);
    return 0;
}

C++: #include<iostream>
using namespace std;
int main () {
    string mozi;
    cin >> mozi;
    int y;
    y = mozi.length();
    for(int i=0;i<y;++i){
        string reverse;
        reverse[i]=mozi[y-i];
    }
    cout << reverse << endl;
    return 0;
}

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

int
main(void)
{
	char line[80];
	char out[80] = { 0 };

	if (fgets(line, sizeof line, stdin)) {
		size_t len = strlen(line);
		if (line[len-1] == '\n') {
			line[len-1] = 0;
			len --;
		}
		
		for (size_t i = 0; i  < len; i++) {
			out[i] = line[len - 1 - i];
		}
			
		printf("%s\n",out);
	}

	return 0;
}

C++: int main()
{
	char *a;
	char str[256];
	// cout << "data_size=" << data_size << endl;
	while (cin.getline(str,256)){
		int data_size = sizeof(a) / sizeof(a[0]);
		for(int i=0;i<=data_size;i++)
			cout << str[data_size - i];
		cout << endl;
	}
	return 0;
}

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

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

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

int main()
{
   char arr[21];
   gets(arr);
   strrev(arr);
   printf("%s",arr);
   return 0;
}

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

C++: #include<stdio.h>

int main(){
    int i;
    char s[20];
    for(i=0;i<20;i++)s[i]='\0';
    scanf("%s",s);
    for(i=20-1;i>=0;i--)
        if(s[i]!='\0')printf("%c",s[i]);

    return 0;
}

C++: #include <iostream>

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

    std::cout << std::endl;
    return 0;
}

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

int main(){
  char str[21];
  cin >> str;
  for(int i=strlen(str);i>=0;i--){
    printf("%c",str[i]);
  }
  cout << endl;
  return 0;
}

C++: #include <cstdio>
#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 <complex>
#include <stack>
#include <queue>

using namespace std;
static const double EPS = 1e-10;

int main(){
	string str;

	cin >> str;
	reverse(str.begin(), str.end());
	cout << str;

	return 0;
}

C++: #include <string.h>

#include <iostream>

int main() {
	char str[21];
	std::cin >> str;

	for (int i = strlen(str) - 1; i >= 0; i--)
			std::cout << str[i];
}

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];
	}
	cout<<endl;
}

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

int main(){
	char str[64];
	int i;
	cin >> str;
	for(i=0;i<=strlen(str);i++){
		cout << str[strlen(str)-i];
	}
	cout << endl;
	return 0;
}

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

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

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

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

    std::cout << std::endl;
    return 0;
}

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

C++: #include <iostream>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <numeric>
#include <cmath>
using namespace std;
typedef vector<int> VI;
#define REP( i, m, n ) for ( int i = (int)( m ); i < (int)( n ); ++i )

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

    string str;
    
    cin >> str;
    reverse(str.begin(), str.end());
    cout << str << endl;
    
    return 0;
}

C++: #include<iostream>
#include<string.h>
using namespace std;
int main()
{
	char a[30];
	while (cin >> a)
	{
		strrev(a);
		cout << a << endl;
	}
}

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

using namespace std;

int main()
{
    string a;

    cin >> a;

    int PSa = a.length();

    for (PSa; 0<=PSa; PSa--)

    cout <<a[PSa];
    return 0;
}

C++: #include <cstdio>
#include <cstring>
#include <algorithm>
 
using namespace std;
 
int main()
{
    char k[100];
    scanf("%s",k);
    reverse(k,k+strlen(k));
    printf("%s\n",k);
    return 0;
}

C++: #include <iostream>

using namespace std;

int main(void){
	char str[21],i;

	cin >> str;

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

	return 0;
}

C++: #include <string.h>

#include <iostream>

int main() {
	char str[21];
	std::cin >> str;

	for (int i = strlen(str) - 1; i >= 0; i--)
			std::cout << str[i];
}

C++: #include <iostream>
#include <cmath>
#include <vector>
#include <queue>
#include <utility>
#include <algorithm>
using namespace std;

int main() {
  string s;
  cin >> s;
  int len = s.length();
  string rev = "";
  for (int i = len - 1; i >= 0; i--) {
    rev += s.at(i);
  }
  cout << rev << endl;
}

C++:  #include<stdio.h>

 int main ()
 {
     char str[20],s2[20];

     scanf("%s",str);
     int i,len=0;

     for (i=0;str[i]!='\0';i++)
     {
         len++;
     }

     strrev(str);

     for (i=0;i<len;i++)
     printf ("%c", str[i]);
     printf ("\n");
     return 0;
 }

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

using namespace std;

int main()
{
	char str[21];

	fgets( str, sizeof( str ) - 1, stdin );

	str[ strlen( str ) ] = '\0';
	
	for ( int i = strlen( str ) - 1; 0 <= i; i-- )
	{
		putchar( str[i] );
	}

	return 0;
}

C++: #include <iostream>
#include <string>
#include <algorithm>
 
//answer3 function
void display(const char& ch) {
	std::cout << ch;
}
 
int main(){
	std::string str;
	std::cin >> str;
	
	//answer1
	for(auto it = str.crbegin(); it != str.crend(); ++it){
		std::cout << *it;
	}
	//answer2
	//std::for_each(str.crbegin(), str.crend(), [](const char& ch){ std::cout << ch; });
	
	//answer3
	//std::for_each(str.crbegin(), str.crend(), display);
	
	std::cout << std::endl;
	
	return 0;
}