WA6,TLE6
#include <bits/stdc++.h>
using namespace std;
string c;
int len;
int m[105],ans=1e9;
string a[105][15];
void dfs(int x,int inx,string s,int step)
{
if(s==c){
ans=min(ans,step);
return;
}
if(x==len) return;
for(int i=1;i<=m[x];i++){
bool f=0;
int now=inx,n=a[x][i].length();
for(int j=0;j<n;j++){
if(a[x][i][j]==c[now]) now++;
else{
f=1;break;
}
}
if(!f){
dfs(x+1,now,s+a[x][i],step+1);
}
}
dfs(x+1,inx,s,step);
}
int main()
{
ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);
cin>>c;
len=c.length();
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>m[i];
for(int j=1;j<=m[i];j++) cin>>a[i][j];
}
dfs(1,0,"",0);
if(ans!=1e9) cout<<ans;
else cout<<-1;
return 0;
}