#include<iostream>
#include<vector>
#include<string>
#include<cstdio>
using namespace std;
void kmp()
{
int n,flag;
while(scanf("%d",&n)!=EOF)
{
flag=1;
string s;
getline(cin,s);
getline(cin,s);
string parent;
getline(cin,parent);
int n = parent.length();
int m = s.length();
vector<int> v(s.size()+1,-1);
for(int i=1;i<=s.size();i++)
{
int pos = v[i-1];
while(pos != -1 && s[pos] != s[i-1])
pos = v[pos];
v[i] = pos+1;
}
int i=0,j=0;
while(j< n )
{
while( i > -1 && parent[j] != s[i])
{
i = v[i];
}
i++;
j++;
if(i == m)
{
cout<<j-m<<endl;
i = v[i];
flag = 0;
}
}
if(flag)
{
cout<<endl;
//cout<<endl;
}
}
}
main()
{
kmp();
}
:cry: