#include <bits/stdc++.h>
#define N 10000000
using namespace std;
vector<int> z(N);
int n;
char s;
void zfun(string s){
int len = s.length();
int l =0;
int r =0;
for(int i=1;i<len;i++){
if(i<=r)
z[i] = min(r-i+1,z[i-l]);
while(i+z[i]<len && s[z[i]] == s[i+z[i]]){
z[i]++;
}
if(z[i] > r-l+1){
l = i;
r = i + z[i] - 1;
}
}
}
void printanswer(string s){
int len = s.length();
for(int i =n+1;i<len;i++){
if(z[i] == n){
cout<<i-n-1<<endl;
}
}
}
int main()
{
while(1)
{
if(scanf("%c",&s) == EOF) break;
z.clear();
z.resize(N);
n = s - '0';
string a,b;
cin>>a>>b;
string c = a+(char)254+b;
zfun(c);
printanswer(c);
cout<<"\n\n";
if(getchar() == EOF) return 0;;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAojZGVmaW5lIE4gMTAwMDAwMDAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdmVjdG9yPGludD4geihOKTsKCmludCBuOwpjaGFyIHM7Cgp2b2lkIHpmdW4oc3RyaW5nIHMpewoJaW50IGxlbiA9IHMubGVuZ3RoKCk7CglpbnQgbCA9MDsKCWludCByID0wOwoJZm9yKGludCBpPTE7aTxsZW47aSsrKXsKCQlpZihpPD1yKQoJCQl6W2ldID0gbWluKHItaSsxLHpbaS1sXSk7CgkJd2hpbGUoaSt6W2ldPGxlbiAmJiBzW3pbaV1dID09IHNbaSt6W2ldXSl7CgkJCXpbaV0rKzsKCQl9CgkJaWYoeltpXSA+IHItbCsxKXsKCQkJbCA9IGk7CgkJCXIgPSBpICsgeltpXSAtIDE7CgkJfQoJfQp9CgoKdm9pZCBwcmludGFuc3dlcihzdHJpbmcgcyl7CglpbnQgbGVuICA9IHMubGVuZ3RoKCk7Cglmb3IoaW50IGkgPW4rMTtpPGxlbjtpKyspewoJCWlmKHpbaV0gPT0gbil7CgkJCWNvdXQ8PGktbi0xPDxlbmRsOwoJCX0KCX0KfQppbnQgbWFpbigpCnsKCndoaWxlKDEpCnsKCWlmKHNjYW5mKCIlYyIsJnMpID09IEVPRikJYnJlYWs7Cgl6LmNsZWFyKCk7Cgl6LnJlc2l6ZShOKTsKCW4gPSBzIC0gJzAnOwoJc3RyaW5nIGEsYjsKCWNpbj4+YT4+YjsKCXN0cmluZyBjID0gYSsoY2hhcikyNTQrYjsKCXpmdW4oYyk7CglwcmludGFuc3dlcihjKTsKCWNvdXQ8PCJcblxuIjsKCWlmKGdldGNoYXIoKSA9PSBFT0YpCXJldHVybiAwOzsKfQpyZXR1cm4gMDsKfQk=