#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ull;
const int inf=0x3f3f3f3f;
const int N=110;
string s;
map<LL, string> longest, shortest;
map<string, LL> node;
void init()
{
for( int i = 0; i < s.size(); i++ )
{
for( int j = 1; j + i <= s.size(); j++ )
{
string sub = s.substr(i,j);
LL st = 0;
for( int k = 0; k + j <= s.size(); k++ )
{
if( s.substr( k, j ) == sub )
{
st |= 1LL << ( k + j );
}
}
node[sub] = st;
if( shortest[st].empty() || j < shortest[st].size() )
{
shortest[st] = sub;
}
if( j > longest[st].size() )
{
longest[st] = sub;
}
}
}
}
int main()
{
cin >> s;
init();
int w;
cin >> w;
while( w-- )
{
string s;
cin >> s;
LL st = node[s];
cout << shortest[st] << ' ' << longest[st];
int pos = 0;
while( st )
{
if( st & 1 )
cout << ' ' << pos;
pos++;
st >>= 1;
}
cout << endl;
}
return 0;
}