#C9203. Palindrome Permutation Checker

    ID: 53271 Type: Default 1000ms 256MiB

Palindrome Permutation Checker

Palindrome Permutation Checker

You are given a string s. Your task is to determine if any permutation of s can form a palindrome. A palindrome is a string that reads the same forwards and backwards. For a string to be able to form a palindrome, the frequency counts of its characters must satisfy the following condition:

At most one character can have an odd frequency. In other words, if we denote the frequency of each character by \( f(c) \), then the string can be rearranged into a palindrome if and only if \[ \sum_{c} \left[ f(c) \mod 2 \neq 0 \right] \le 1, \] where \( [P] \) is 1 if the predicate \(P\) is true and 0 otherwise.

Input is read from stdin and output is written to stdout.

inputFormat

The input consists of a single line containing a non-empty string s composed of lowercase and/or uppercase English letters.

outputFormat

Output a single line "YES" if any permutation of the string s can form a palindrome. Otherwise, output "NO".

## sample
civic
YES