Go: package main

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

var scanner = bufio.NewScanner(os.Stdin)

func nextString() string {
	scanner.Scan()
	return scanner.Text()
}

func main() {
	scanner.Split(bufio.ScanWords)

	str := nextString()
	for i := len(str) - 1; i >= 0; i-- {
		fmt.Print(str[i:(i + 1)])
	}
	fmt.Print("\n")
}

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

int main() {
   char r[20], temp;
   int i,j=0;
   gets(r);
   i = 0;
   j = strlen(r) - 1;

   while (i < j) {
      temp= r[i];
      r[i]=r[j];
      r[j]=temp;
      i++;
      j--;
   }
   printf("%s",r);
   return (0);
}

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

using namespace std;

int main() {

	char str[20];
	int i, len;

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

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

	return 0;

}

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

using namespace std;

int main(void) {
	char s[21];
	cin >> s;
	reverse(s, s+strlen(s));
	cout << s << endl;
	return 0;
}

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

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

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

C++: #include<cstdio>
#include<cstring>
main() {
	char str[20];

	scanf("%s", str);

	for (int i=strlen(str)-1; i >= 0; i--)printf("%c", str[i]);

	printf("\n");

	return 0;
}

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

#define rep(i, n) for (int i = 0; i < int(n); i++)
#define rrep(i, n) for (int i = int(n) - 1; i >= 0; i--)
#define reps(i, n) for (int i = 1; i <= int(n); i++)
#define rreps(i, n) for (int i = int(n); i >= 1; i--)
#define repc(i, n) for (int i = 0; i <= int(n); i++)
#define rrepc(i, n) for (int i = int(n); i >= 0; i--)
#define repi(i, a, b) for (int i = int(a); i < int(b); i++)
#define repic(i, a, b) for (int i = int(a); i <= int(b); i++)
#define each(x, y) for (auto &x : y)
#define all(a) (a).begin(), (a).end()
#define bit(b) (1ll << (b))

using namespace std;

using i32 = int;
using i64 = long long;
using u64 = unsigned long long;
using f80 = long double;
using vi32 = vector<i32>;
using vi64 = vector<i64>;
using vu64 = vector<u64>;
using vf80 = vector<f80>;
using vstr = vector<string>;

inline void yes() { cout << "Yes" << '\n'; exit(0); }
inline void no() { cout << "No" << '\n'; exit(0); }
inline i64 gcd(i64 a, i64 b) { if (min(a, b) == 0) return max(a, b); if (a % b == 0) return b; return gcd(b, a % b); }
inline i64 lcm(i64 a, i64 b) { return a / gcd(a, b) * b; }
inline u64 xorshift() { static u64 x = 88172645463325252ull; x = x ^ (x << 7); return x = x ^ (x >> 9); }
void solve(); int main() { ios::sync_with_stdio(0); cin.tie(0); cout << fixed << setprecision(16); solve(); return 0; }
template <typename T> class pqasc : public priority_queue<T, vector<T>, greater<T>> {};
template <typename T> class pqdesc : public priority_queue<T, vector<T>, less<T>> {};
template <typename T> inline void amax(T &x, T y) { if (x < y) x = y; }
template <typename T> inline void amin(T &x, T y) { if (x > y) x = y; }
template <typename T> inline T power(T x, i64 n, T e = 1) { T r = e; while (n > 0) { if (n & 1) r *= x; x *= x; n >>= 1; } return r; }
template <typename T> istream& operator>>(istream &is, vector<T> &v) { each(x, v) is >> x; return is; }
template <typename T> ostream& operator<<(ostream &os, vector<T> &v) { rep(i, v.size()) { if (i) os << ' '; os << v[i]; } return os; }
template <typename T, typename S> istream& operator>>(istream &is, pair<T, S> &p) { is >> p.first >> p.second; return is; }
template <typename T, typename S> ostream& operator<<(ostream &os, pair<T, S> &p) { os << p.first << ' ' << p.second; return os; }

void solve() {
  string s; cin >> s;
  string t;
  rep(i, s.size()) t += s[s.size() - 1 - i];
  cout << t << '\n';
}

C++: #include<iostream>
#include<string>
using namespace std;
int main()
{
	char a[21] = {};
	char b[21] = {};
	int alen = 0;
	cin >> a;
	alen = strlen(a);
	for (int i = 0; alen >= 0; alen--, i++) {
		b[i] = a[alen -1];
	}
	cout << b << 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++: #define _GLIBCXX_DEBUG
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define ALL(v) v.begin(), v.end()
typedef long long ll;

template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

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

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

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

int main() {
	string str,a;
	cin >> str;
	a = "";
	for(int i =str.size()-1;i>=0;i--){
		a += str[i];


	}
	cout << a << endl;
	
	return 0;
}

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;
}