#include<bits/stdc++.h>
using namespace std;
string s,t;
int n,m;
int Ne[1000010];
void get_Next(){
int j=0;
Ne[0]=0;
for(int i=1;i<m;i++){
while(j>0&&s[i]!=s[j]) j=Ne[j-1];
if(s[i]==s[j]) j++;
Ne[i]=j;
}
}
void str(){
get_Next();
int j=0;
for(int i=0;i<n;i++){
while(j>0&&s[i]!=t[j]) j=Ne[j-1];
if(s[i]==t[j]) j++;
if(j==m){
printf("%d\n",i-m+2);
j=Ne[j-1];
}
}
}
int main(){
cin>>s>>t;
n=(int)s.size();
m=(int)t.size();
str();
for(int i=0;i<m;i++) printf("%d ",Ne[i]);
return 0;
}