#include <bits/stdc++.h>
#pragma GCC optimize("unroll-loops")
using namespace std;
const int inf = (1953125 << 9);
const int maxn = 1 + 1e5;
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  string str;
  cin >> str;
  if (((int)(str.size())) <= 5000) {
    cout << str << string(str.rbegin(), str.rend());
    return 0;
  }
  deque<char> sf, sl;
  for (int i = 0; i < ((int)(str.size())); ++i) {
    sf.push_back(str[i]);
    sl.push_back(str[i]);
    if (str[((int)(str.size())) - 1] == sf.back()) str.erase(str.end() - 1);
  }
  while (((int)(sf.size()))) {
    cout << sf.front();
    sf.pop_front();
  }
  while (((int)(sl.size()))) {
    cout << sl.back();
    sl.pop_back();
  }
}
