#include "stdio.h"
#include "string.h"
char a[10000005],b[10000005];
long long next[10000005],s[10000005],next1[10000005];
void nextshuzu(){
int j=0;
int len=strlen(b);
next[0]=0;
for(int i=1;i<len;i++){
while(b[i]!=b[j]&&j>0){
j=next1[j-1];
}
if(b[i]==b[j]){
j++;
}
next1[i]=j;
}
for(int i=0;i<len;i++)
printf("%lld ",next1[i]);
}
void f() {
long long k,j,len;
next[0]=-1;
len=strlen(b);
k=-1;
for(j=0;j<len-1;)
{
if(k==-1||b[k]==b[j])
{
k++;
j++;
next[j]=k;
}
else k=next[k];
}
}
main()
{ long long i,j,lena,lenb,k=0;
scanf("%s\n%s",a,b);
f();
lena=strlen(a);
lenb=strlen(b);
j=0;
for(i=0;i<lena;)
{
if(j==-1||a[i]==b[j])
{
j++;
i++;
}
else j=next[j];
if(j==lenb) { s[k++]=i-j+1; j=0; i--;}
}
printf("%lld\n",k);
for(i=0;i<k;i++)
printf("%lld\n",s[i]);
nextshuzu();
/*if(j==lenb) printf("%d",i-j);*/
}