#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 1e5 + 10, M = 1e6 + 10;char p[N], s[M];int n,m,ne[N];int main(){ cin.tie(NULL); ios::sync_with_stdio(false); cin >> n >> (p+1) >> m >> (s+1); int i,j,k; j = 1, k = 0, ne[1] = 0; while(j <= n){ if(k == 0 || p[j] == p[k]){ne[j+1] = k+1; j++;k++;} else k = ne[k]; } i = 1, j = 1; while(i <= m){ if(j == 0 || s[i] == p[j]){ i++; j++; if(j > n) printf("%d%c",i-n-1,i>m?'\n':' '); } else j = ne[j]; } // if(j > n) cout << i-n-1 << endl;// else cout << -1 <<endl; return 0;}