#include #include #include #include #include using namespace std; using i32 = int; using u32 = unsigned int; using i64 = long long; using u64 = unsigned long long; #define rep(i,n) for(int i=0; i<(int)(n); i++) const i64 INF = 1001001001001001001; i64 GCD(i64 a, i64 b){ return b ? GCD(b,a%b) : a; } using Modint = atcoder::static_modint<998244353>; int main(){ string A; cin >> A; string res = A + A; int N = A.size(); for(int i=N-1; i>=0; i--){ string P = A.substr(0, i); reverse(P.begin(), P.end()); P = A + P; string rP = P; reverse(P.begin(), P.end()); if(rP == P) res = P; } cout << res << endl; return 0; } struct ios_do_not_sync{ ios_do_not_sync(){ ios::sync_with_stdio(false); cin.tie(nullptr); } } ios_do_not_sync_instance;