#include using namespace std; const int N = 1e5 + 10; const int M = 1e6 + 10; int ne[N]; int n, m; char s[M], p[N]; int main() { cin >> n >> (p + 1) >> m >> (s + 1); for (int i = 2, j = 0; i <= n; i++) { while (i && 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 <= m; i++) { while (i && s[i] != p[j + 1]) j = ne[j]; if (s[i] == p[j + 1]) j++; if (j == n) { printf("%d ", i - n); j = ne[j]; } } return 0; }