rt
#include<bits/stdc++.h>
using namespace std;
int prefix[114514]={0,0};
string s1,s2;
int main()
{
getline(cin,s1);
getline(cin,s2);
int j=0,n=s1.size(),m=s2.size();
for(int i=2;i<=m;i++)
{
while(j>0&&s2[j+1]!=s2[i]) j=prefix[j];
if(s2[j+1]==s2[i]) j++;
prefix[i]=j;
}
for(int i=1;i<=m;i++) cout<<prefix[i]<<" ";
j=0;
for(int i=1;i<=n;i++)
{
while(j>0&&s2[j+1]!=s1[i]) j=prefix[j];
if(s2[j+1]==s1[i]) j++;
if(j==m) cout<<i-m+1<<endl,j=prefix[j];
}
for(int i=1;i<=m;i++) cout<<prefix[i]<<" ";
}