确定性有限自动机 (DFA) 是一个有序集合 $(\Sigma, U, S, T, \phi)$,其中 $\Sigma$ 是称为输入字母表的有限集合,在本题中 $\Sigma = \{a, b, \dots, z\}$,$U$ 是有限状态集,$S \in U$ 是初始状态,$T \subset U$ 是终止状态集,$\phi : U \times \Sigma \rightarrow U$ 是转移函数。
自动机的输入是 $\Sigma$ 上的字符串 $\alpha$。初始时,自动机处于状态 $S$。每一步,自动机读取输入字符串的第一个字符 $c$,并将状态更改为 $\phi(u, c)$,其中 $u$ 是当前状态。然后从输入字符串中移除第一个字符,并重复该步骤。如果输入字符串为空后自动机处于终止状态,则它接受初始字符串 $\alpha$,否则拒绝它。由自动机 $A$ 接受的所有单词的集合记为 $L(A)$。
我们可以将 DFA 可视化为一个有向图,其状态为顶点,转移为标记有字符的边。终止状态显示为双圆圈顶点,初始状态由箭头标记。下图左侧展示了语言 $(ab)^*$ 的自动机,该语言由零个或多个重复的单词 “ab” 组成。下图右侧展示了语言 $a^*ba^*ba^*$ 的自动机,该语言由 “a” 和 “b” 组成且包含两个 “b”。为了清晰起见,标记为 “*” 的边表示所有未明确绘制的转移。
单词集合 $X$ 如果等于某个 DFA $A$ 的 $L(A)$,则称为正则语言。正则语言 $X$ 的索引(记为 $ind(X)$)是使得 $L(A) = X$ 的 DFA $A$ 中的最小状态数。例如,上图所示的两个自动机确实是所描述语言的最小 DFA,因此 $ind((ab)^*) = 3$ 且 $ind(a^*ba^*ba^*) = 4$。
众所周知,如果 $X_1$ 和 $X_2$ 是两个正则语言,则它们的交集 $X_1 \cap X_2$ 也是一个正则语言。例如,上述两个语言的交集是语言 $Y = (ab)^* \cap (a^*ba^*ba^*) = \{abab\}$,其中包含单个单词 “abab”。显然,单单词语言是正则的,$Y$ 的自动机如下图所示。
容易看出,如果 $W$ 是一个单单词语言 $W = \{w\}$,且 $w$ 的长度为 $n$,则 $W$ 的索引等于 $n + 2$。
如果正则语言 $X$ 可以表示为两个正则语言的交集 $X = X_1 \cap X_2$,且满足 $ind(X) > ind(X_1)$ 和 $ind(X) > ind(X_2)$,则称其为可分解的。例如,单单词语言 $Y = \{abab\}$ 是可分解的。
给定一个长度为 $n$ 的单词 $w$,判断单单词语言 $W = \{w\}$ 是否可分解。如果可分解,请找出两个自动机 $A_1$ 和 $A_2$,使得 $A_1$ 和 $A_2$ 的状态数均小于 $n + 2$,且 $W = L(A_1) \cap L(A_2)$。
输入格式
输入文件包含多个测试用例。 每个测试用例由单独一行上的单词 $w$ 组成,$w$ 由小写英文字母组成,长度在 $1$ 到 $50$ 之间(含)。 一个输入文件中最多有 $100$ 个测试用例。
输出格式
对于每个测试用例,如果相应的单单词语言是可分解的,首先打印 “YES”,否则打印 “NO”。如果语言是可分解的,则必须接着输出两个 DFA 的描述。每个 DFA 的描述必须以 $k$ 开头——状态数,$1 \le k \le n + 1$,其中 $n$ 是输入单词的长度。令状态编号为 $1$ 到 $k$,初始状态为状态 $1$。然后打印 $t$——终止状态的数量,$1 \le t \le k$,随后是 $t$ 个 $1$ 到 $k$ 之间的整数,表示终止状态。接下来的 $k$ 行必须各包含 $26$ 个整数:对于状态 $u$,打印 $\phi(u, a), \phi(u, b), \dots, \phi(u, z)$。
样例
输入 1
abab a
输出 1
YES 3 1 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 1 3 2 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 NO