#include <bits/stdc++.h>
#define ll long long
#define fr(i, a, b) for (ll i = a; i < b; i++)
#define mmst(i,a) memset(i,a,sizeof(i))
#define all(i) i.begin(),i.end()
#define allr(i) i.rbegin(),i.rend()
#define caseout cout << "Case " << tc << ": ";
#define fast \
ios_base::sync_with_stdio(false); \
cin.tie(NULL); \
cout.tie(NULL);
#define yes cout << "YES" << endl
#define no cout << "NO" << endl
using namespace std;
const ll mod=1e9+7;
void solve()
{
string s1,s2;
cin>>s1>>s2;
ll dhv=0;
ll pow=1;
fr(i,0,s2.size()){
dhv+=((s2[i]-'a'+1)*pow)%mod;
pow=(pow*31)%mod;
}
ll pref[s1.size()+1];
ll currPow[s1.size()];
pref[0]=0;
pow=1;
fr(i,0,s1.size()){
pref[i+1]=(pref[i]+((s1[i]-'a'+1)*pow))%mod;
currPow[i]=pow;
pow=(pow*31)%mod;
}
ll sp=0,ep=s2.size();
vector<ll> ans;
while(ep<=s1.size()){
if((pref[ep]-pref[sp]+mod)%mod==((dhv*currPow[sp])%mod)){
ans.push_back(sp+1);
}
sp++;ep++;
}
// cout<<dhv<<endl;
if(ans.size()==0){
cout<<"Not Found"<<endl;
cout<<endl;
return;
}
cout<<ans.size()<<endl;
for(auto it: ans)cout<<it<<" ";cout<<endl;cout<<endl;
}
int main()
{
fast ll T = 1;
cin >> T;
for (int tc = 1; tc <= T; tc++)
{
// cout<<"Case "<<tc<<": ";
solve();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZnIoaSwgYSwgYikgZm9yIChsbCBpID0gYTsgaSA8IGI7IGkrKykKI2RlZmluZSBtbXN0KGksYSkgbWVtc2V0KGksYSxzaXplb2YoaSkpCiNkZWZpbmUgYWxsKGkpIGkuYmVnaW4oKSxpLmVuZCgpCiNkZWZpbmUgYWxscihpKSBpLnJiZWdpbigpLGkucmVuZCgpCiNkZWZpbmUgY2FzZW91dCBjb3V0IDw8ICJDYXNlICIgPDwgdGMgPDwgIjogIjsKI2RlZmluZSBmYXN0ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgXAogICAgY2luLnRpZShOVUxMKTsgICAgICAgICAgICAgICAgICAgIFwKICAgIGNvdXQudGllKE5VTEwpOwojZGVmaW5lIHllcyBjb3V0IDw8ICJZRVMiIDw8IGVuZGwKI2RlZmluZSBubyBjb3V0IDw8ICJOTyIgPDwgZW5kbAp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsbCBtb2Q9MWU5Kzc7Cgp2b2lkIHNvbHZlKCkKewogICAgc3RyaW5nIHMxLHMyOwogICAgY2luPj5zMT4+czI7CiAgICBsbCBkaHY9MDsKICAgIGxsIHBvdz0xOwogICAgZnIoaSwwLHMyLnNpemUoKSl7CiAgICAgICAgZGh2Kz0oKHMyW2ldLSdhJysxKSpwb3cpJW1vZDsKICAgICAgICBwb3c9KHBvdyozMSklbW9kOwogICAgfQogICAgbGwgcHJlZltzMS5zaXplKCkrMV07CiAgICBsbCBjdXJyUG93W3MxLnNpemUoKV07CiAgICBwcmVmWzBdPTA7CiAgICBwb3c9MTsKICAgIGZyKGksMCxzMS5zaXplKCkpewogICAgICAgIHByZWZbaSsxXT0ocHJlZltpXSsoKHMxW2ldLSdhJysxKSpwb3cpKSVtb2Q7CiAgICAgICAgY3VyclBvd1tpXT1wb3c7CiAgICAgICAgcG93PShwb3cqMzEpJW1vZDsKICAgIH0KICAgIGxsIHNwPTAsZXA9czIuc2l6ZSgpOwogICAgdmVjdG9yPGxsPiBhbnM7CiAgICB3aGlsZShlcDw9czEuc2l6ZSgpKXsKICAgICAgICBpZigocHJlZltlcF0tcHJlZltzcF0rbW9kKSVtb2Q9PSgoZGh2KmN1cnJQb3dbc3BdKSVtb2QpKXsKICAgICAgICAgICAgYW5zLnB1c2hfYmFjayhzcCsxKTsKICAgICAgICB9CiAgICAgICAgc3ArKztlcCsrOwogICAgfQogICAgLy8gY291dDw8ZGh2PDxlbmRsOwogICAgaWYoYW5zLnNpemUoKT09MCl7CiAgICAgICAgY291dDw8Ik5vdCBGb3VuZCI8PGVuZGw7CiAgICAgICAgY291dDw8ZW5kbDsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBjb3V0PDxhbnMuc2l6ZSgpPDxlbmRsOwogICAgZm9yKGF1dG8gaXQ6IGFucyljb3V0PDxpdDw8IiAiO2NvdXQ8PGVuZGw7Y291dDw8ZW5kbDsKfQppbnQgbWFpbigpCnsKICAgIGZhc3QgbGwgVCA9IDE7CiAgICBjaW4gPj4gVDsKICAgIGZvciAoaW50IHRjID0gMTsgdGMgPD0gVDsgdGMrKykKICAgIHsKICAgICAgICAvLyBjb3V0PDwiQ2FzZSAiPDx0Yzw8IjogIjsKICAgICAgICBzb2x2ZSgpOwogICAgfQp9