残缺的字符串

题目描述

很久很久以前,在你刚刚学习字符串匹配的时候,有两个仅包含小写字母的字符串$A$和$B$,其中$A$串长度为$m$,$B$串长度为$n$。可当你现在再次碰到这两个串时,这两个串已经老化了,每个串都有不同程度的残缺。 你想对这两个串重新进行匹配,其中$A$为模板串,那么现在问题来了,请回答,对于$B$的每一个位置$i$,从这个位置开始连续$m$个字符形成的子串是否可能与$A$串完全匹配?

输入输出格式

输入格式


第一行包含两个正整数$m$,$n$,分别表示$A$串和$B$串的长度。 第二行为一个长度为$m$的字符串$A$。 第三行为一个长度为$n$的字符串$B$。 两个串均仅由小写字母和\*号组成,其中\*号表示相应位置已经残缺。

输出格式


第一行包含一个整数$k$,表示$B$串中可以完全匹配$A$串的位置个数。 若$k > 0$,则第二行输出$k$个正整数,从小到大依次输出每个可以匹配的开头位置(下标从$1$开始)。

输入输出样例

输入样例 #1

3 7
a*b
aebr*ob

输出样例 #1

2
1 5

说明

$100$%的数据满足$1 \leq m \leq n \leq 300000$。