#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod=1e9+7,mod1=998244353;
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
string A,B;
cin>>A>>B;
bool K[A.size()+1];
if(A.size()>=B.size()){
int dp[A.size()+1];
dp[0]=0;
for(int a=1;a<=A.size();a++){
dp[a]=(dp[a-1]*26+A[a-1]-94+mod)%mod;
}
int dp1[B.size()+1];
dp1[0]=0;
int sum=1;
for(int a=0;a<B.size();a++){
sum*=26;
sum%=mod;
}
for(int a=1;a<=B.size();a++){
dp1[a]=(dp1[a-1]*26+B[a-1]-94+mod)%mod;
}
/*for(int a=1;a<=A.size();a++){
cout<<dp[a]<<"\n";
}*/
int m=0;
for(int a=B.size();a<=A.size();a++){
if((dp[a]%mod-(dp[a-B.size()]*sum)%mod+mod)%mod==dp1[B.size()]){
K[a-B.size()+1]=1;
}
// cout<<(dp[a]-dp[a-B.size()]*sum)%mod<<" "<<dp1[B.size()]<<"\n";
}
dp[0]=0;
for(int a=1;a<=A.size();a++){
dp[a]=(dp[a-1]*26+A[a-1]-94+mod1)%mod1;
}
dp1[0]=0;
sum=1;
for(int a=0;a<B.size();a++){
sum*=26;
sum%=mod1;
}
for(int a=1;a<=B.size();a++){
dp1[a]=(dp1[a-1]*26+B[a-1]-94+mod1)%mod1;
}
/*for(int a=1;a<=A.size();a++){
cout<<dp[a]<<"\n";
}*/
for(int a=B.size();a<=A.size();a++){
if((dp[a]%mod1-(dp[a-B.size()]*sum)%mod1+mod1)%mod1==dp1[B.size()]){
if(K[a-B.size()+1]) cout<<a-B.size()+1<<" ";
}
// cout<<(dp[a]-dp[a-B.size()]*sum)%mod<<" "<<dp1[B.size()]<<"\n";
}
}
}