#include<bits/stdc++.h>
#define ll long long
using namespace std;
int next[10000001];
queue<int> ans;
void kmp(string s1,string s2){
int len1=s1.size(),len2=s2.size();
int i=0,j=0;
while(i<len1){
if(s1[i]==s2[j]){
i++;
j++;
}
else if(j>0){
j=next[i-1];
}
else{
i++;
}
if(j==len2){
ans.push(i-j+1);
j=next[i-1];
}
}
}
string a,b;
int main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>a>>b;
int len=b.size(),z=0;
next[0]=0;
for(int i=1;i<len;i++){
if(b[z]==b[i]){
next[i]=next[i-1]+1;
z++;
}
else{
z--;
z=next[z];
if(b[z]==b[i]){
next[i]=z+1;
}
else{
next[i]=0;
}
}
}
kmp(a,b);
while(ans.size()){
cout<<ans.front()<<endl;
ans.pop();
}
for(int i=0;i<len;i++){
cout<<next[i]<<" ";
}
return 0;
}