#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int maxn=1e6+10000;
int ne[maxn],sign[maxn];
string a,b;
void init(){
ne[0]=0;
int len=0;
int i=1;
while(i<b.size()){
if(b[i]==b[len]){
len++;
ne[i]=len;
i++;
}
else{
if(len) len=ne[len-1];
else{
ne[i]=0;
i++;
}
}
}
}
signed main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int ans=0,loc=1;
cin>>a>>b;
if(b.size()==1){
for(int i=0;i<a.size();i++) if(a[i]==b[0]) cout<<i+1<<endl;
cout<<0<<endl;
return 0;
}
init();
for(int i=0,j=0;i<a.size();i++){
//cout<<b.size()<<endl;
if(a[i]==b[j]){
//cout<<1<<endl;
//cout<<j<<" "<<b.size()<<endl;
if(j==b.size()-1){
// cout<<1<<endl;
ans++;
// cout<<i<<endl;
sign[loc++]=i-b.size()+2;
j=ne[j];
continue;}
// j++;
}
else j=ne[j-1];
j++;
}
//cout<<ans<<endl;
for(int i=1;i<=ans;i++) cout<<sign[i]<<endl;
for(int i=0;i<b.size();i++) cout<<ne[i]<<" ";
cout<<endl;
}