#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <string>
using namespace std;
char a[1000002],b[1000002];
int main() {
int n;
scanf("%d",&n);
for(int i=0;i<n;++i){
int s;
scanf("%d",&s);
scanf("%s",a);
scanf("%s",b);
int m=s;
int n=strlen(b);
unsigned int p=41;
unsigned int q=1000000007,h=1;
unsigned int hasz1=0,hasz2=0;
for(int i=0;i<m;++i){
hasz1=((hasz1*p)+a[i]);
}
for(int i=0;i<m;++i){
hasz2=((hasz2*p)+b[i]);
if(i>0)h=(h*p);;
}
for(int i=0;i<=n-m;++i){
if(hasz1==hasz2){
int j=0;
bool fla=0;
/*
while(j<m){
if(a[j]!=b[i+j]){ // O to
fla=1;
break;
}
++j;
}
if(fla==0)
*/
printf("%d\n",i);
}
if(i<n-m){
hasz2=(p*(hasz2-b[i]*h));
hasz2=(hasz2+b[i+m]);
}
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjaGFyIGFbMTAwMDAwMl0sYlsxMDAwMDAyXTsKaW50IG1haW4oKSB7CiAgICBpbnQgbjsKICAgIHNjYW5mKCIlZCIsJm4pOwogICAgZm9yKGludCBpPTA7aTxuOysraSl7CiAgICAgICAgaW50IHM7CiAgICAgICAgc2NhbmYoIiVkIiwmcyk7CiAgICAgICAgc2NhbmYoIiVzIixhKTsKICAgICAgICBzY2FuZigiJXMiLGIpOwogICAgICAgIGludCBtPXM7CiAgICAgICAgaW50IG49c3RybGVuKGIpOwogICAgICAgIHVuc2lnbmVkIGludCBwPTQxOwogICAgICAgIHVuc2lnbmVkIGludCBxPTEwMDAwMDAwMDcsaD0xOwogICAgICAgIHVuc2lnbmVkIGludCBoYXN6MT0wLGhhc3oyPTA7CiAgICAgICAgZm9yKGludCBpPTA7aTxtOysraSl7CiAgICAgICAgICAgIGhhc3oxPSgoaGFzejEqcCkrYVtpXSk7CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0wO2k8bTsrK2kpewogICAgICAgICAgICBoYXN6Mj0oKGhhc3oyKnApK2JbaV0pOwogICAgICAgICAgICBpZihpPjApaD0oaCpwKTs7CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0wO2k8PW4tbTsrK2kpewogICAgICAgICAgICBpZihoYXN6MT09aGFzejIpewogICAgICAgICAgICAgICAgaW50IGo9MDsKICAgICAgICAgICAgICAgIGJvb2wgZmxhPTA7CiAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgd2hpbGUoajxtKXsKICAgICAgICAgICAgICAgICAgICBpZihhW2pdIT1iW2kral0peyAvLyBPIHRvCiAgICAgICAgICAgICAgICAgICAgICAgIGZsYT0xOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgKytqOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoZmxhPT0wKQogICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIlZFxuIixpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZihpPG4tbSl7CiAgICAgICAgICAgICAgICBoYXN6Mj0ocCooaGFzejItYltpXSpoKSk7CiAgICAgICAgICAgICAgICBoYXN6Mj0oaGFzejIrYltpK21dKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9Cg==