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++: /* All men have limits. They learn what they are and learn
   not to exceed them, I ignore mine. -Batman           */
#include <bits/stdc++.h>
//#include <iostream>
//#include <Windows.h>
using namespace std;
void swap(char &i,char &j){
	char temp;
	temp=i;i=j;j=temp;	
}

int main(){
string s;
cin>>s;
for(int i=0;i<s.length()/2;i++){
	swap(s[i],s[s.length()-i-1]);
}
cout<<s<<endl;
return 0;
}

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

int main(){
    std::string str;
    std::queue<char> que;
    std::cin >> str;
    const int size = str.size();
    for(int i = 0; i < size; ++i){
        que.push(str.back());
        str.erase(str.size() - 1, 1);
    }
    for(int i = 0; i < size; ++i){
        if(i != size - 1){
            std::cout << que.front();
            que.pop();
        }else{
            std::cout << que.front() << std::endl;
        }
    }
    return 0;
}

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

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

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

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

int main(void){

    std::string str;
    std::getline(std::cin,str);
    str.reverse(str.begin(),sr.end());
    std::cout<<str<<std::endl;
    return 0;
}

C++: #include <iostream>
#include <iomanip>
#include <vector>
#include <set>
#include <map>
#include <list>
#include <iterator>
#include <queue>
#include <stack>
#include <deque>
#include <sstream>
#include <algorithm>
#include <numeric>
#include <string>
#include <cmath>
#include <complex>
#include <functional>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cassert>
#include <cstdlib>
#include <cctype>

#define REP(i,m,n) for(int i=m;i<n;i++)
#define rep(i,n) for(int i=0;i<n;i++)
#define rp(i,c) rep(i,(int)c.size())
#define fr(i,c) for(__typeof((c).begin()) i=(c).begin();i!=(c).end();i++)
#define mp make_pair
#define pb push_back
#define all(c) (c).begin(),(c).end()
#define rall(u) (u).rbegin(),(u).rend()
#define dbg(x) cerr<<#x<<" = "<<(x)<<endl
#define v_delete(a,b) (a).erase(remove((a).begin(), (a).end(), b), (a).end())
#define v_unique(a) (a).erase(unique((a).begin(), (a).end()), (a).end())
#define VV(T) vector<vector< T > >
#define init(a,b) memset((a), (b), sizeof((a)))
using namespace std;

typedef long long ll;
typedef vector<int> vi;
typedef pair<int,int> pi;
const int inf=1<<28;
const double INF=1e10,EPS=1e-9;


template<class T>int SIZE(T a){return a.size();}
template<class T>string IntToString(T num){string res;stringstream ss;ss<<num;return ss.str();}
template<class T>T StringToInt(string str){T res=0;for(int i=0;i<SIZE(str);i++)res=(res*10+str[i]-'0');return res;}
template<class T>T gcd(T a,T b){if(b==0)return a;return gcd(b,a%b);}
template<class T>T lcm(T a,T b){return a/gcd(a,b)*b;}

template <class T> void input(T& a, int n) { for (int i = 0; i < n; ++i) cin >> a[i]; }
template <class T> void input(T* a, int n) { for (int i = 0; i < n; ++i) cin >> a[i]; }
typedef pair<int,int> pii;

inline bool IN(int x, int y, int w, int h)
{
    return 0 <= x && x < w && 0 <= y && y < h;
}


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

C++: #include<iostream>
#include<string>
#include<algorithm>
#include<map>
#include<set>
#include<utility>
#include<vector>
#include<cmath>
#include<cstdio>
#define loop(i,a,b) for(int i=a;i<b;i++) 
#define rep(i,a) loop(i,0,a)
#define pb push_back
#define mp make_pair
#define it ::iterator
#define all(in) in.begin(),in.end()
typedef long long int LLI;
const double PI=acos(-1);
const double ESP=1e-10;
using namespace std;
int main(){
  string s;
  cin>>s;
  reverse(all(s));
  cout<<s<<endl;
}

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

int main(){
  string str;
  int len;


  while( cin >> str ){
  len = str.length();

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

  

  }
}

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

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

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

int main(){
    char input[100];
    int i;
    gets(input);
    int j=strlen(input);
    for(i=j-1;i>=0;i--){
        printf("%c",input[i]);
    }
    printf("\n");


    return 0;
}

C++: #include <iostream>
#include <cstdio>
using namespace std;
int main() { 
  int count=0;  
  char str[21]={}; 
  while(scanf("%c",&str[count])) {  
    if(str[count] == '\n') break;
    count++;
  } 
  for(int i=count-1; i>=0; i--) {  
    cout << str[i];  
  } 
  cout << endl; 
  return 0;
}

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

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

C++: #include<stdio.h>
#include<string.h>
int main()
{
    char s[20];
    gets(s);
    strrev(s);
    puts(s);
    printf("\n");
    return 0;
}

C++: #include<iostream>
#include<algorithm>
#include<vector>
#include<stack>
#include<queue>
#include<cstdio>
#include<climits>
#include<cmath>
#include<cstring>
#include<string>

#define f first
#define s second
#define mp make_pair

#define REP(i,n) for(int i=0; i<(int)(n); i++)
#define FOR(i,c) for(__typeof((c).begin()) i=(c).begin(); i!=(c).end(); i++)
#define ALL(c) (c).begin(), (c).end()

using namespace std;

typedef unsigned int uint;
typedef long long ll;

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

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

int main(){

string x;
cin >> x;
vector<char> c;
for(int i = 0;i < x.size(); ++i)
{
 c.push_back(x[i]);
}
for(int i = c.size()-1; i > 0; --i)
{
 cout << c[i];
}

cout << endl;
return 0;
}

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<iostream>
#include<cstring>
using namespace std;

int main(){
  string str;
  int len;


  while( cin >> str ){
  len = str.length();

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

  

  }
}

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

int main()
{
	string x;
	cin >> x;
		for(int i=0;i<x.length();i++)
			cout << x[x.length()-i-1];
	cout << endl;
	return 0;
}

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

int main(){
    char str[20],res[20];
    int n;
    scanf("%s",str);
    n = strlen(str);

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

C++: #include <algorithm>
#include <sstream>
#include <iostream>
#include <list>
#include <map>
#include <math.h>
#include <stack>
#include <stdio.h>
#include <string>
#include <queue>
#include <vector>
using namespace std;

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

	cout << s << endl;
}