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$