#include<bits/stdc++.h>
using namespace std;
char s1[200001] = {0},s2[200001] = {0};
int n1,n2;
int nxt[200001] = {0};
int main(){
cin>>s1;
cin>>s2;
int n1 = strlen(s1),n2 = strlen(s2);
int dnum = 0;
for(int i = 1;i<n2;i++){
if(s2[i]==s2[dnum]){
nxt[i] = nxt[i-1]+1;
dnum++;
}else{
if(!dnum){
nxt[i] = 0;
}else{
dnum = nxt[dnum-1];
if(s2[i]==s2[dnum]){
nxt[i] = dnum+1;
dnum++;
}
}
}
}
int tik2 = 0,tik1 = 0;
while(tik1<n1){
if(s2[tik2]==s1[tik1]){
tik2++;
tik1++;
}else{
if(tik2==0){
tik1++;
}else{
tik2 = nxt[tik2-1];
}
}
if(tik2==n2){
cout<<tik1-tik2+1<<endl;
}
}
for(int i = 0;i<n2;i++){
cout<<nxt[i]<<" ";
}
cout<<endl;
return 0;
}
30ptsID