import java.util.*; public class Demo { static boolean possibility(HashMap m, int length, String s) { int countodd = 0; for (int i = 0; i < length; i++) { if (m.get(s.charAt(i) - '0') % 2 == 1) countodd++; if (countodd > 1) return false; } return true; } static void largestPalindrome(String s) { int l = s.length(); HashMap m = new HashMap<>(); for (int i = 0; i < l; i++) if (m.containsKey(s.charAt(i) - '0')) { m.put(s.charAt(i) - '0', m.get(s.charAt(i) - '0') + 1); } else { m.put(s.charAt(i) - '0', 1); } if (possibility(m, l, s) == false) { System.out.print("No palindromic number available."); return; } char[] largest = new char[l]; int front = 0; for (int i = 9; i >= 0; i--) { if (m.containsKey(i) && m.get(i) % 2 == 1) { largest[l / 2] = (char) (i + 48); m.put(i, m.get(i) - 1); while (m.get(i) > 0) { largest[front] = (char) (i + 48); largest[l - front - 1] = (char) (i + 48); m.put(i, m.get(i) - 2); front++; } } else { while (m.containsKey(i) && m.get(i) > 0) { largest[front] = (char) (i + 48); largest[l - front - 1] = (char) (i + 48); m.put(i, m.get(i) - 2); front++; } } } for (int i = 0; i < l; i++) System.out.print(largest[i]); } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String s = scanner.nextLine(); largestPalindrome(s); } }