#include<bits/stdc++.h>
using namespace std;
string zh,z;
int next1[1123456]={0,0,1};
void ne(){
for(int i=0,j=0;j<z.size();j++){
if(i==j){
next1[j]=0;
}else if(z[i]==z[j]){
next1[j]=++i;
}else{
while(z[i]!=z[j]&&i!=0){
i=next1[i-1];
}
if(z[i]==z[j]&&i+1!=j){
i++;
}
next1[j]=i;
}
}
}
void kmp(){
int j=0,i=0;
for(j=0,i=0;i<zh.size();i++){
if(j==z.size()){
cout<<abs(i-j)+1<<"\n";
j=next1[j-1 ]+1;
}else if(zh[i]!=z[j]){
if(j!=0) {
j=next1[j-1];
i--;
}
}else j++;
}
if(j==z.size()){
cout<<abs(i-j)+1<<"\n";
}
}
int main(){
cin>>zh>>z;
ne();
kmp();
for(int i=0;i<z.size();i++){
cout<<next1[i]<<" ";
}
}