#include<iostream>
#define int long long
using namespace std;
const int N=1e6+5;
int len1,len2,nxt[N];
string s1,s2;
void build(){
nxt[1]=0;
for(int i=2;i<=len2;i++){
int j=i-1;
if(s2[nxt[j]+1]==s2[i]) nxt[i]=nxt[i-1]+1;
else{
while(1){
j=nxt[j];
if(s2[nxt[j]+1]==s2[i]) nxt[i]=nxt[j]+1;
if(nxt[j]==0) break;
}
}
}
}
void ans(){
int i=1,j=1;
while(i<=len1){
if(s1[i]==s2[j]){
if(j==len2){
cout<<i-len2+1<<'\n';
i=i-len2+2;
j=1;
continue;
}
i++;
j++;
}
else if(j==1){
i++;
}
else{
while(1){
if(j==1) break;
j=nxt[j]+1;
if(s1[i]==s2[j]) break;
}
}
}
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>s1>>s2;
len1=s1.size();
len2=s2.size();
s1='0'+s1;
s2='0'+s2;
build();
ans();
for(int i=1;i<=len2;i++) cout<<nxt[i]<<' ';
return 0;
}