#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+10;
char s[N], p[N];
int ne[N],n, m;
void kmp(int m, int n) {
//预处理
for (int i = 2, j = 0;i <= m;i++) {
while (j && p[i] != p[j + 1])j = ne[j];
if (p[i] == p[j + 1])j++;
ne[i] = j;
}
for (int i = 1, j = 0;i <= n;i++) {
while (j && s[i] != p[j + 1])j = ne[j];
if (s[i] == p[j + 1])j++;
if (j == m) {
cout << i - m << ' ';
j = ne[j];
}
}
}
int main() {
cin >> m;
cin >> p+1;
cin >> n;
cin >> s+1;
kmp(m, n);
}