```cpp
#include<bits/stdc++.h>
#define ll long long
using namespace std;
char t[110];
int n;
int a[110];
char s[110][20][20];
int dp[110][110]={0};
int len;
int main()
{
cin>>t>>n;
len=strlen(t);
for(int i=1;i<=n;i++)
{
cin>>a[i];
for(int j=1;j<=a[i];j++) cin>>s[i][j];
}
for(register int i=0;i<=n;i++)
for(int j=1;j<=len;j++)
dp[i][j]=1e9;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=a[i];j++)
{
int cd=strlen(s[i][j]);
if(cd>len) continue;
for(int k=0;k<=len;k++)
{
dp[i][k]=min(dp[i][k],dp[i-1][k]);
int f=1;
for(int l=1;l<=cd;l++)
{
if(s[i][j][l-1]!=t[k+l-1])
{
f=0;
break;
}
}
if(!f) continue;
dp[i][k+cd]=min(dp[i-1][k]+1,dp[i][k+cd]);
}
}
}
if(dp[n][len]==1e9) printf("-1");
else printf("%d",dp[n][len]);
return 0;
}
```
by what_can_I_do @ 2024-03-09 21:43:48