#include<bits/stdc++.h>
using namespace
typedef long long ll;
string a,b;
const int MAXN = 1e6+10;
int nxt[MAXN];
int main(){
cin>>a>>b;
int n = a.size();
int m = b.size();
for(int i=1,max_len=0;i<m;i++){
if(b[i]==b[max_len])max_len++,nxt[i]=max_len;
else if(max_len != 0)max_len == nxt[max_len-1];
}
for(int i=0,j=0;i<n;){
if(a[i]==b[j])i++,j++;
else if(j>0)j=nxt[j-1];
else i++;
if(j == m)cout<<i-m+1<<endl;
}
for(int i=0;i<m;i++)cout<<nxt[i]<<' ';
return 0;
}