#include #define FOR(i,a,b) for (int i=(a);i<(b);i++) #define FORR(i,a,b) for (int i=(a);i>=(b);i--) #define pb push_back using namespace std; typedef long long ll; typedef pair pii; typedef vector vi; typedef set si; typedef pair pll; const int inf = 1e9; const ll mod1 = 1e9+7; const ll mod2 = 999999937; int m; ll mod[2] = {mod1, mod2}; set sl; int il[50020]; pll h[11]; main(){ cin.tie(0); ios::sync_with_stdio(false); string s; cin >> s >> m; FOR(i, 0, m){ string c; cin >> c; ll d[2] = {0, 0}; FOR(i, 0, c.size()){ int k = (c[i] - 'A') + 1; FOR(j, 0, 2){ d[j] = (d[j] * 28 + k) % mod[j]; } } sl.insert(pll(d[0], d[1])); } FOR(i, 0, 9){ il[i] = 27; } FOR(i, 9, s.size() + 9){ il[i] = (s[i - 9] - 'A') + 1; } ll ans = 0; FOR(i, 0, s.size() + 9){ FORR(j, 10, 1){ h[j].first = (h[j-1].first * 28 + il[i]) % mod[0]; h[j].second = (h[j-1].second * 28 + il[i]) % mod[1]; if(sl.find(h[j]) != sl.end()) ans++; } } cout << ans << endl; }