/* Look for:
* the exact constraints (multiple sets are too slow for n=10^6 :( )
* special cases (n=1?)
* 1LL<<i and not 1<<i
* overflow (ll vs ll?)
* array bounds
* if you have no idea just guess the appropriate well-known algo instead of doing nothing :/
*/
// Author:: Subash Singha Roy
// Institution:: Jalpaiguri Government Engineering College
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define dd double
#define fio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define mod (ll)(998244353)
#define sz(a) (ll)a.size()
#define all(a) a.begin(),a.end()
#define fr(i,a,b) for(ll i=a;i<b;i++)
#define frr(i,a,b) for(ll i=a-1;i>=b;i--)
#define pb emplace_back
#define ee emplace
#define rr return 0
#define mp make_pair
#define pr pair <ll,ll>
#define ff first
#define ss second
#define pie 3.1415926535898
#define inf LLONG_MAX
ll mult(ll a,ll b, ll p=mod){return ((a%p)*(b%p))%p;}
ll add(ll a, ll b, ll p=mod){return (a%p + b%p)%p;}
ll neg(ll a,ll p=mod){return (p-(a%p))%p;}
ll sub(ll a,ll b,ll p=mod){return add(a,neg(b));}
ll fpow(ll x, ll y)
{
ll res = 1;
x = x % mod;
if (x == 0) return 0;
while (y > 0)
{
if (y & 1LL)
res = (res*x) % mod;
y = y>>1LL;
x = (x*x) % mod;
}
return res;
}
ll inv(ll a, ll p = mod) {return fpow(a, p - 2);}
bool sa(const pair<ll,ll> &a,const pair<ll,ll> &b){return (a.second<b.second);}
bool fd(const pair<ll,ll> &a,const pair<ll,ll> &b){return (a.first>b.first);}
bool sd(const pair<ll,ll> &a,const pair<ll,ll> &b){return (a.second>b.second);}
ll dx[4]={0,0,1,-1};
ll dy[4]={1,-1,0,0};
bool valid(ll x,ll y,ll n,ll m){
if(x<0 || y<0){
return false;
}
else if(x>=n || y>=m){
return false;
}
else
return true;
}
#define maxn 500005
vector<ll>v;
void findPrefix(string& t, ll m, ll pref[]){
ll len=0;
pref[0]=0;
for(ll i=1;i<m;i++){
if(t[i]==t[len]){
len++;
pref[i]=len;
}
else{
if(len!=0){
len = pref[len-1];
i--;
}
else{
pref[i]=0;
}
}
}
}
void KMP(string &s, string &t){
ll n,m,i=0,j=0;
n=(ll)s.length();
m=(ll)t.length();
ll pref[m];
findPrefix(t,m,pref);
while(i<n){
if(s[i]==t[j]){
i++;j++;
}
if(j == m){
v.pb(i-j);
j = pref[j-1];
}
else if(i<n && s[i]!=t[j]){
if(j!=0){
j=pref[j-1];
}
else{
i++;
}
}
}
}
int main(){
fio
ll T;
T = 1;
// cin >>T;
fr(tc,1,T+1){
// cout<<"Case #"<<t<<": ";
ll q;
string s,t;
cin>>s;
cin>>q;
while(q--){
cin>>t;
v.clear();
KMP(s,t);
cout<<(ll)v.size()<<" ";
fr(i,0,(ll)v.size()){
cout<<v[i]<<" ";
}
cout<<"\n";
}
}
rr;
}
LyogTG9vayBmb3I6CiogdGhlIGV4YWN0IGNvbnN0cmFpbnRzIChtdWx0aXBsZSBzZXRzIGFyZSB0b28gc2xvdyBmb3Igbj0xMF42IDooICkKKiBzcGVjaWFsIGNhc2VzIChuPTE/KQoqIDFMTDw8aSBhbmQgbm90IDE8PGkKKiBvdmVyZmxvdyAobGwgdnMgbGw/KQoqIGFycmF5IGJvdW5kcwoqIGlmIHlvdSBoYXZlIG5vIGlkZWEganVzdCBndWVzcyB0aGUgYXBwcm9wcmlhdGUgd2VsbC1rbm93biBhbGdvIGluc3RlYWQgb2YgZG9pbmcgbm90aGluZyA6LwoqLwoKLy8gQXV0aG9yOjogU3ViYXNoIFNpbmdoYSBSb3kKLy8gSW5zdGl0dXRpb246OiBKYWxwYWlndXJpIEdvdmVybm1lbnQgRW5naW5lZXJpbmcgQ29sbGVnZQoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZGQgZG91YmxlCiNkZWZpbmUgZmlvIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKTsKI2RlZmluZSBtb2QgKGxsKSg5OTgyNDQzNTMpCiNkZWZpbmUgc3ooYSkgKGxsKWEuc2l6ZSgpCiNkZWZpbmUgYWxsKGEpIGEuYmVnaW4oKSxhLmVuZCgpCiNkZWZpbmUgZnIoaSxhLGIpIGZvcihsbCBpPWE7aTxiO2krKykKI2RlZmluZSBmcnIoaSxhLGIpIGZvcihsbCBpPWEtMTtpPj1iO2ktLSkKI2RlZmluZSBwYiBlbXBsYWNlX2JhY2sKI2RlZmluZSBlZSBlbXBsYWNlCiNkZWZpbmUgcnIgcmV0dXJuIDAKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBwciAgcGFpciA8bGwsbGw+CiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKI2RlZmluZSBwaWUgMy4xNDE1OTI2NTM1ODk4CiNkZWZpbmUgaW5mIExMT05HX01BWApsbCBtdWx0KGxsIGEsbGwgYiwgbGwgcD1tb2Qpe3JldHVybiAoKGElcCkqKGIlcCkpJXA7fQpsbCBhZGQobGwgYSwgbGwgYiwgbGwgcD1tb2Qpe3JldHVybiAoYSVwICsgYiVwKSVwO30KbGwgbmVnKGxsIGEsbGwgcD1tb2Qpe3JldHVybiAocC0oYSVwKSklcDt9CmxsIHN1YihsbCBhLGxsIGIsbGwgcD1tb2Qpe3JldHVybiBhZGQoYSxuZWcoYikpO30KbGwgZnBvdyhsbCB4LCBsbCB5KSAgCnsgIAogICAgbGwgcmVzID0gMTsgICAgIAogICAgeCA9IHggJSBtb2Q7IAogICAgaWYgKHggPT0gMCkgcmV0dXJuIDA7IAogICAgd2hpbGUgKHkgPiAwKSAgCiAgICB7ICAKICAgICAgICBpZiAoeSAmIDFMTCkgIAogICAgICAgICAgICByZXMgPSAocmVzKngpICUgbW9kOyAgCiAgICAgICAgeSA9IHk+PjFMTDsKICAgICAgICB4ID0gKHgqeCkgJSBtb2Q7ICAKICAgIH0gIAogICAgcmV0dXJuIHJlczsgIAp9ICAKbGwgaW52KGxsIGEsIGxsIHAgPSBtb2QpIHtyZXR1cm4gZnBvdyhhLCBwIC0gMik7fQpib29sIHNhKGNvbnN0IHBhaXI8bGwsbGw+ICZhLGNvbnN0IHBhaXI8bGwsbGw+ICZiKXtyZXR1cm4gKGEuc2Vjb25kPGIuc2Vjb25kKTt9CmJvb2wgZmQoY29uc3QgcGFpcjxsbCxsbD4gJmEsY29uc3QgcGFpcjxsbCxsbD4gJmIpe3JldHVybiAoYS5maXJzdD5iLmZpcnN0KTt9CmJvb2wgc2QoY29uc3QgcGFpcjxsbCxsbD4gJmEsY29uc3QgcGFpcjxsbCxsbD4gJmIpe3JldHVybiAoYS5zZWNvbmQ+Yi5zZWNvbmQpO30KbGwgZHhbNF09ezAsMCwxLC0xfTsKbGwgZHlbNF09ezEsLTEsMCwwfTsKYm9vbCB2YWxpZChsbCB4LGxsIHksbGwgbixsbCBtKXsKICAgIGlmKHg8MCB8fCB5PDApewogICAgICAgcmV0dXJuIGZhbHNlOwogICB9CiAgIGVsc2UgaWYoeD49biB8fCB5Pj1tKXsKICAgICAgIHJldHVybiBmYWxzZTsKICAgfQogICBlbHNlCiAgIHJldHVybiB0cnVlOwp9CiNkZWZpbmUgbWF4biA1MDAwMDUgCgp2ZWN0b3I8bGw+djsKCnZvaWQgZmluZFByZWZpeChzdHJpbmcmIHQsIGxsIG0sIGxsIHByZWZbXSl7CiAgICBsbCBsZW49MDsKICAgIHByZWZbMF09MDsKICAgIGZvcihsbCBpPTE7aTxtO2krKyl7CiAgICAgICAgaWYodFtpXT09dFtsZW5dKXsKICAgICAgICAgICAgbGVuKys7CiAgICAgICAgICAgIHByZWZbaV09bGVuOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICBpZihsZW4hPTApewogICAgICAgICAgICAgICAgbGVuID0gcHJlZltsZW4tMV07CiAgICAgICAgICAgICAgICBpLS07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgIHByZWZbaV09MDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKdm9pZCBLTVAoc3RyaW5nICZzLCBzdHJpbmcgJnQpewogICAgbGwgbixtLGk9MCxqPTA7CiAgICBuPShsbClzLmxlbmd0aCgpOwogICAgbT0obGwpdC5sZW5ndGgoKTsKICAgIGxsIHByZWZbbV07CiAgICBmaW5kUHJlZml4KHQsbSxwcmVmKTsKICAgIHdoaWxlKGk8bil7CiAgICAgICAgaWYoc1tpXT09dFtqXSl7CiAgICAgICAgICAgIGkrKztqKys7CiAgICAgICAgfQogICAgICAgIGlmKGogPT0gbSl7CiAgICAgICAgICAgIHYucGIoaS1qKTsKICAgICAgICAgICAgaiA9IHByZWZbai0xXTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihpPG4gJiYgc1tpXSE9dFtqXSl7CiAgICAgICAgICAgIGlmKGohPTApewogICAgICAgICAgICAgICAgaj1wcmVmW2otMV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKXsKICAgIGZpbwogICAgbGwgVDsKICAgIFQgPSAxOwogICAgLy8gY2luID4+VDsKICAgIGZyKHRjLDEsVCsxKXsKICAgICAgICAvLyBjb3V0PDwiQ2FzZSAjIjw8dDw8IjogIjsKICAgICAgICBsbCBxOwogICAgICAgIHN0cmluZyBzLHQ7CiAgICAgICAgY2luPj5zOwogICAgICAgIGNpbj4+cTsKICAgICAgICB3aGlsZShxLS0pewogICAgICAgICAgICBjaW4+PnQ7CiAgICAgICAgICAgIHYuY2xlYXIoKTsKICAgICAgICAgICAgS01QKHMsdCk7CiAgICAgICAgICAgIGNvdXQ8PChsbCl2LnNpemUoKTw8IiAiOwogICAgICAgICAgICBmcihpLDAsKGxsKXYuc2l6ZSgpKXsKICAgICAgICAgICAgICAgIGNvdXQ8PHZbaV08PCIgIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb3V0PDwiXG4iOwogICAgICAgIH0KICAgIH0KICAgIHJyOwp9Cg==