import
java.util.*;
class
Main {
static
int
Palindrome(String s,
int
n)
{
Map<Character, Integer> cnt =
new
HashMap<Character, Integer>();
String R =
""
;
for
(
int
i =
0
; i < n; i++) {
char
a = s.charAt(i);
cnt.put(a, cnt.getOrDefault(a,
0
) +
1
);
}
for
(
char
i =
'a'
; i <=
'z'
; i++) {
if
(cnt.getOrDefault(i,
0
) %
2
!=
0
)
R += i;
}
int
l = R.length();
int
j =
0
;
for
(
int
i = l -
1
; i >= l /
2
; i--) {
cnt.put(R.charAt(i), cnt.get(R.charAt(i)) -
1
);
R.replace(R.charAt(i), R.charAt(j));
cnt.put(R.charAt(j), cnt.get(R.charAt(j)) +
1
);
j++;
}
String first =
""
, middle =
""
, second =
""
;
for
(
char
i =
'a'
; i <=
'z'
; i++) {
if
(cnt.getOrDefault(i,
0
) !=
0
) {
if
(cnt.get(i) %
2
==
0
) {
j =
0
;
while
(j < cnt.get(i) /
2
) {
first += i;
j++;
}
}
else
{
j =
0
;
while
(j < (cnt.get(i) -
1
) /
2
) {
first += i;
j++;
}
middle += i;
}
}
}
second =
new
StringBuilder(first).reverse().toString();
String resultant = first + middle + second;
System.out.println(resultant);
return
0
;
}
public
static
void
main(String[] args)
{
String S =
"geeksforgeeks"
;
int
n = S.length();
Palindrome(S, n);
}
}