#include<bits/stdc++.h>
using namespace std;
char s[600001],t[600001];
long long fail[600001];
int main(){
scanf("%s%s",s+1,t+1);
long long n=strlen(s+1),m=strlen(t+1);
fail[1]=0;
for(long long i=2;i<=m;++i){
long long j=fail[i-1];
while(t[i]!=t[j+1]&&j)j=fail[j];
if(t[i]==t[j+1])j++;
fail[i]=j;
}
long long p=0;
for(long long i=1;i<=n;++i){
while(s[i]!=t[p+1]&&p)p=fail[p];
if(s[i]=t[p+1])p++;
if(p==m){
printf("%d\n",i-m+1);
p=fail[p];
}
}
for(long long i=1;i<=m;++i)printf("%d ",fail[i]);
return 0;
}