#include using namespace std; #define repl(i, l, r) for (ll i = (l); i < (r); i++) #define rep(i, n) repl(i, 0, n) using ll = long long; using ul = unsigned long long; static constexpr ul base = 998244353ULL; static constexpr ul MASK30 = (1ULL << 30) - 1; static constexpr ul MASK31 = (1ULL << 31) - 1; static constexpr ul MOD = (1ULL << 61) - 1; static constexpr ul MASK61 = MOD; ul CalcMod(ul x) { ul xu = x >> 61, xd = x & MASK61; ul res = xu + xd; if (res >= MOD) res -= MOD; return res; } ul Mul(ul a, ul b) { ul au = a >> 31, bu = b >> 31; ul ad = a & MASK31, bd = b & MASK31; ul mid = ad * bu + au * bd; ul midu = mid >> 30, midd = mid & MASK30; return CalcMod(au * bu * 2 + midu + (midd << 31) + ad * bd); } int main() { string s; int m; cin >> s >> m; int n = s.size(); map M; ul K = base; repl(i, 1, min(11, n + 1)) { ul H = 0LL; rep(j, i) H = CalcMod(Mul(H, base) + s[j]); M[H]++; rep(j, n - i) { H = CalcMod(Mul(H, base) + MOD * 4 - Mul(s[j], K) + s[j + i]); M[H]++; } K = CalcMod(Mul(K, base)); } int ans = 0; while (m--) { string t; cin >> t; ul now = 0LL; for (auto c : t) now = CalcMod(Mul(now, base) + c); ans += M[now]; } cout << ans << endl; return 0; }