#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
using namespace std;
const int MAX = 1e4+5;
int f[MAX];
int l;
char p[MAX];
void init()
{
for(int i=0;i<=l;i++)f[i]=0;
}
void failure_function()
{
//int l = strlen(p);
init();
int j=0;
for(int i=1;i<l;i++)
{
while(j>=0&&p[j]!=p[i])
{
if(j-1>=0)
j = f[j-1];
else
j = -1;
}
j += 1;
f[i] = j;
}
}
void find_occurrences()
{
failure_function();
int flag=1;
int lp = l;
char c=getchar();
int j=0,i=0;
while((c = getchar())!='\n')
{
if(c==EOF)
exit(0);
while(j>=0&&c!=p[j])
{
if(j-1>=0)
j = f[j-1];
else
j = -1;
}
j+=1;
if(j==lp)
{
flag=0;
j = f[lp-1];
printf("%d\n",i-lp+1);
}
i++;
}
if(flag)
printf("\n");
}
int main(void)
{
while(1)
{
scanf("%d",&l);
scanf("%s",p);
find_occurrences();
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y3N0ZGxpYj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE1BWCA9IDFlNCs1OwppbnQgZltNQVhdOwppbnQgbDsKY2hhciBwW01BWF07CnZvaWQgaW5pdCgpCnsKCWZvcihpbnQgaT0wO2k8PWw7aSsrKWZbaV09MDsKfQp2b2lkIGZhaWx1cmVfZnVuY3Rpb24oKQp7CgkvL2ludCBsID0gc3RybGVuKHApOwoJaW5pdCgpOwoJaW50IGo9MDsKCWZvcihpbnQgaT0xO2k8bDtpKyspCgl7CgkJd2hpbGUoaj49MCYmcFtqXSE9cFtpXSkKCQl7CgkJCWlmKGotMT49MCkKCQkJCWogPSBmW2otMV07CgkJCWVsc2UKCQkJCWogPSAtMTsKCQl9CgkJaiArPSAxOwoJCWZbaV0gPSBqOwoJfQoKfQp2b2lkIGZpbmRfb2NjdXJyZW5jZXMoKQp7CglmYWlsdXJlX2Z1bmN0aW9uKCk7CglpbnQgZmxhZz0xOwoJaW50IGxwID0gbDsKCWNoYXIgYz1nZXRjaGFyKCk7CglpbnQgaj0wLGk9MDsKCXdoaWxlKChjID0gZ2V0Y2hhcigpKSE9J1xuJykKCXsKCQlpZihjPT1FT0YpCgkJZXhpdCgwKTsKCQl3aGlsZShqPj0wJiZjIT1wW2pdKQoJCXsKCQkJaWYoai0xPj0wKQoJCQkJaiA9IGZbai0xXTsKCQkJZWxzZQoJCQkJaiA9IC0xOwoJCX0KCQlqKz0xOwoJCWlmKGo9PWxwKQoJCXsKCQkJZmxhZz0wOwoJCQlqID0gZltscC0xXTsKCQkJcHJpbnRmKCIlZFxuIixpLWxwKzEpOwoJCX0KCQlpKys7Cgl9CglpZihmbGFnKQoJcHJpbnRmKCJcbiIpOwoJCgkKfQppbnQgbWFpbih2b2lkKQp7Cgl3aGlsZSgxKQoJewoJc2NhbmYoIiVkIiwmbCk7CglzY2FuZigiJXMiLHApOwoJCglmaW5kX29jY3VycmVuY2VzKCk7Cgl9Cn0=