{"raw_statement":[{"iden":"statement","content":"\n作为一个新手，小明刚学了回文字符串，知道了一个字符串如果关于中心对称，则该字符串为回文字符串。\n\n于是他自己就发明了属于他自己的回文字符串，即符合以下条件的字符串 $S$ 是回文字符串：\n\n首先把字符串 $S$ 分割成 $n$ 个子串 $S_1,S_2,\\ldots,S_n$，即 $S_1+S_2+\\ldots+S_n = S$（其中 $+$ 为字符串拼接操作）。\n\n分割成的子串数量需要大于 $1$，且不能为空，即 $n > 1$ 且 $S_i$ 为非空子串。\n\n对于所有的 $i \\in[1, n]$ 有：要么 $S_i$ 与 $S_{n−i+1}$ 相等，要么 $S_i$ 与 $S_{n−i+1}$ 互为回文。（补充说明：字符串 $A$ 和 $B$ 互为回文指 $A$ 倒过来与 $B$ 相等，反之亦然。举例说明：$\\texttt{abc}$ 与 $\\texttt{cba}$ 互为回文。）\n\n给定一个字符串 $S$，请你帮助小明确定该字符串是否是在上述规则下的回文字符串。\n\n如果是，他还想将字符串 $S$ 分成尽可能多的子串。"},{"iden":"input","content":"一行一个字符串 $S$。\n"},{"iden":"output","content":"\n\n如果不能满足要求，输出一行一个字符串 $\\texttt{NO}$；否则，输出两行，第一行一个字符串 $\\texttt{YES}$，第二行一个整数 $n$ 表示最大的子串数量。"},{"iden":"note","content":"\n### 样例解释\n\n- 样例 $1$ 解释：最多可以把字符串分成 $(a)(b)(c)(ab)(ab)(c)(b)(a)$ 共 8 个子串。\n- 样例 $2$ 解释：很显然不存在满足题意的分割方案。\n- 样例 $3$ 解释：最多可以把字符串分成 $\\texttt{(waha)(code)(waha)}$ 共 3 个子串。\n\n\n### 数据范围\n\n对于 $30\\%$ 的数据，$1\\le |S|\\le 10$；（其中 $S$ 为给定字符串的长度）\n\n对于 $60\\%$ 的数据，$1\\le |S |\\le 10^3$；\n\n其中有 $30\\%$ 的数据，输入的字符串为回文字符串；\n\n对于 $100\\%$ 的数据，$1\\le| S |\\le10^4$，保证输入的字符串全为小写字母。"}],"translated_statement":null,"sample_group":[["abcababcba","YES \n8"],["goodluckhavefun","NO"],["wahacodewaha","YES\n3"]],"show_order":[],"formal_statement":null,"simple_statement":null,"has_page_source":false}