CF533F Encoding
题目描述
坡旅甲发明了一种新的字符串编码方法.
具体来说,我们可以取若干对不相交的小写字母对(每个小写字母至多出现一次),然后对于一个由小写字母组成的字符串 $T$ ,我们将 $T$ 中出现在选中字母对中的字母替换为这个字母对中的另一个字母.
举个例子:我们选中了三对字母 $(l,r)$ , $(p,q)$ 和 $(a,o)$ ,那么,"parallelogram" 将会变为 "qolorreraglom"
现在,坡旅甲已经有了两个字符串 $S$ 和 $T$ .他惊讶地发现,$S$ 的许多子串竟然可以通过他所发明的新编码方法得到 $T$.于是坡旅甲想知道,$S$ 中有多少个子串可以用如上所描述的字符串编码方法编码得到 $T$
输入格式
第一行包含两个整数 $n,m$ ,表示 $S$ 和 $T$ 的串长.
接下来两行由两个小写字母字符串 $S$ 和 $T$
输出格式
第一行一个整数,表示满足条件的子串个数 $k$
接下来一行按照升序输出 $k$ 个整数,表示每个子串开始的位置(下标从1开始)
说明/提示
$n,m\le2\times10^5$