#include<bits/stdc++.h>
const int N=1e6+7;
int fail[N];
char qs[N],ins[N];
using namespace std;
int main(){
scanf("%s%s",ins+1,qs+1);
for(int i=2,f=0;qs[i];i++){
while(f&&qs[i]!=qs[f+1])f=fail[f];
if(qs[i]==qs[f+1])fail[i]=++f;
}
for(int i=1,p=0;ins[i];i++){
while(p&&qs[p+1]!=ins[i])p=fail[p];
if(ins[i]==qs[p+1])p++;
if(p==strlen(qs+1))printf("%d\n",i-strlen(qs+1)+1);
}
for(int i=1;i<=strlen(qs+1);i++)printf("%d ",fail[i]);
return 0;
}