import java.util.*;
public class Main {
public static void main
(String[] args
) {
Scanner sc
= new Scanner
(System.
in);
HashMap
<String, Integer
> map
= new HashMap
<>(); StringBuilder sb = new StringBuilder();
for(int i=0;i<st.length();i++) {
if ( map.containsKey(s)) {
map.put(s,map.get(s)+1);
} else
{
map.put(s, 1);
}
}
st = "";
int cnt = 0;
for (Map.
Entry<String, Integer
> entry
: map.
entrySet()) { // HashMap Values와 Key를 순차적으로 참조 entrySet() int Value = entry.getValue();
if(Value % 2 ==1) {
for(int i=0;i< Value/2;i++) {
cnt +=1 ;
}
else {
for(int i=0;i< Value/2;i++) {
}
char[] ca = st2.toCharArray();
StringBuilder sb2 = new StringBuilder();
sb2.append(ca);
//sb_Right = sb.reverse(); 이렇게 쓰면 sb도 뒤집어져버림
if( map.size() == 1) {
}
else {
if (cnt > 1) {
System.
out.
println("I'm Sorry Hansoo"); }else {
if(cnt == 1)
System.
out.
println(sb2
+ st
+sb2.
reverse()); else
System.
out.
println(sb2.
toString() +sb2.
reverse().
toString()); }
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewoKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCgkJU2Nhbm5lciBzYyA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CgkJU3RyaW5nIHN0ID0gc2MubmV4dExpbmUoKTsKCQlTdHJpbmcgdCA9IHN0OwoJCQoJCUhhc2hNYXA8U3RyaW5nLCBJbnRlZ2VyPiBtYXAgPSBuZXcgSGFzaE1hcDw+KCk7CgkJU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CgkJZm9yKGludCBpPTA7aTxzdC5sZW5ndGgoKTtpKyspIHsKCQkJU3RyaW5nIHMgPSBTdHJpbmcudmFsdWVPZihzdC5jaGFyQXQoaSkpOwoJCQlpZiAoIG1hcC5jb250YWluc0tleShzKSkgewoJCQkJbWFwLnB1dChzLG1hcC5nZXQocykrMSk7CgkJCX0gZWxzZQoJCQl7CgkJCQltYXAucHV0KHMsIDEpOwoJCQl9CgkJfQoJCXN0ID0gIiI7CgkJaW50IGNudCA9IDA7CgkJIGZvciAoTWFwLkVudHJ5PFN0cmluZywgSW50ZWdlcj4gZW50cnkgOiBtYXAuZW50cnlTZXQoKSkgewkvLyBIYXNoTWFwIFZhbHVlc+yZgCBLZXnrpbwg7Iic7LCo7KCB7Jy866GcIOywuOyhsCBlbnRyeVNldCgpCgkJCVN0cmluZyBLZXkgPSBlbnRyeS5nZXRLZXkoKTsKCQkgCWludCBWYWx1ZSA9IGVudHJ5LmdldFZhbHVlKCk7CgkJIAkKCQkgCWlmKFZhbHVlICUgMiA9PTEpIHsKCQkgCQlzdCA9IHN0LmNvbmNhdChLZXkpOwoJCSAJCWZvcihpbnQgaT0wO2k8IFZhbHVlLzI7aSsrKSB7CgkJCSAJCXNiLmFwcGVuZChLZXkpO30KCQkgCQkJY250ICs9MSA7CgkJIAkJCX0KCQkgCWVsc2UgewoJCQkgCWZvcihpbnQgaT0wO2k8IFZhbHVlLzI7aSsrKSB7ICAKCQkJIAkJc2IuYXBwZW5kKEtleSk7fX0KCQl9CgkgCgkJIAoJCSBTdHJpbmcgc3QyID0gc2IudG9TdHJpbmcoKTsKCQkgCgkJIGNoYXJbXSBjYSA9IHN0Mi50b0NoYXJBcnJheSgpOwoJCSBBcnJheXMuc29ydChjYSk7CiAKCQkgU3RyaW5nQnVpbGRlciBzYjIgPSBuZXcgU3RyaW5nQnVpbGRlcigpOwoJCSBzYjIuYXBwZW5kKGNhKTsKCQkgCgkJLy9zYl9SaWdodCA9IHNiLnJldmVyc2UoKTsgIOydtOugh+qyjCDsk7DrqbQgc2Lrj4Qg65Kk7KeR7Ja07KC467KE66a8CgkJIGlmKCBtYXAuc2l6ZSgpID09IDEpIHsKCQkJIFN5c3RlbS5vdXQucHJpbnRsbih0KTsKCQkgfQoJCSBlbHNlIHsKCQkJIGlmIChjbnQgPiAxKSB7CgkJCQkgU3lzdGVtLm91dC5wcmludGxuKCJJJ20gU29ycnkgSGFuc29vIik7CgkJCSB9ZWxzZSB7CgkJCQlpZihjbnQgPT0gMSkgCgkJCQkJU3lzdGVtLm91dC5wcmludGxuKHNiMiArIHN0ICtzYjIucmV2ZXJzZSgpKTsJCQkJCQkKCQkJCWVsc2UgCgkJCQkJU3lzdGVtLm91dC5wcmludGxuKHNiMi50b1N0cmluZygpICtzYjIucmV2ZXJzZSgpLnRvU3RyaW5nKCkpOwoJCQkJfQoJCSB9CgkgCgl9Cn0K